dja*_*fan 4 eclipse jar executable-jar
我使用Eclipse的"Export - > Java - > Runnable Jar File"函数生成了一个非常简单的可运行jar文件.我的HelloWorld类看起来像这样:
import javax.swing.JFrame;
public class HWorld extends JFrame {
public static void main(String[] args) {
new HWorld();
}
public HWorld() {
this.setSize(200, 100);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("Hello World!");
this.setVisible(true);
}
}
Run Code Online (Sandbox Code Playgroud)
现在,在生成.jar文件后,使用命令"java -jar HWorld.jar"从命令行运行正常
但是,当我尝试自己执行jar(据说应该可以工作)时,我得到以下错误,我不知道为什么:
E:\Eclipse\workspace>HWorld.jar
Exception in thread "main" java.lang.NoClassDefFoundError: E:\Eclipse\workspace\HWorld/jar
Caused by: java.lang.ClassNotFoundException: E:\Eclipse\workspace\HWorld.jar
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: E:\Eclipse\workspace\HWorld.jar. Program will exit.
Run Code Online (Sandbox Code Playgroud)
我的清单看起来像这样:
Manifest-Version: 1.0
Rsrc-Class-Path: ./
Class-Path: .
Rsrc-Main-Class: HWorld
Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader
Run Code Online (Sandbox Code Playgroud)
对我来说唯一看起来很可疑的是这个(因为.jar不是.class):
Could not find the main class: E:\Eclipse\workspace\HWorld.jar
Run Code Online (Sandbox Code Playgroud)
寻找想法或想法甚至答案!为了获得高质量的答案,我试图提供尽可能多的信息.这个帖子意味着它应该有效但不回答我的问题:http: //forums.oracle.com/forums/thread.jspa?threadID = 2152988.其他人可以在他们的Eclipse中尝试吗?
从这个意义上说,罐子永远不会"可执行".这个罐子的好处是:
java -jar YOURJAR.jar
Run Code Online (Sandbox Code Playgroud)
更新你提供的回溯是奇怪的.似乎Windows决定继续使用某个版本的Java启动你的jar,但是在类名的位置传递一个路径名.我不知道故事是什么.
| 归档时间: |
|
| 查看次数: |
26982 次 |
| 最近记录: |