【发布时间】:2011-08-09 10:23:49
【问题描述】:
我需要创建我的 java 应用程序的 jar 文件。首先,我创建了一个名为 Manifest.MF 的文件,在该文件中我存储了以下代码
Manifest-Version: 1.0
Main-Class: com.demo.test.JavaTest
然后我在命令提示符下执行了以下命令
jar cvfm JavaAppDemo.jar MANIFEST.MF "C:\JavaSamples\MyApp"
MyApp 是我的项目目录,在那里我创建了包并使用了其他 jar 文件
然后我尝试使用 java 命令运行 jar
java -jar JavaAppDemo.jar
我得到了以下异常
线程“main”中的异常 java.lang.NoClassDefFoundError: com/demo/test/JavaTest
原因: java.lang.ClassNotFoundException: com.demo.test.JavaSamp 在 java.net.URLClassLoader$1.run(URLClassLoader.java:202) 在 java.security.AccessController.doPrivileged(本机 方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:190) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:307) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:248) 无法找到主类: com.demo.test.JavaTest。程序将 退出。
请告诉我,我想创建一个 jar,我必须将我的项目目录中的文件捆绑到该 jar 文件中,当我提取 jar 时,我得到了我的项目文件夹,但是当我运行我的 jar 时,我得到了上面异常,所以我很困惑哪里存在漏洞。
【问题讨论】:
-
你试过
java -cp . -jar JavaAppDemo.jar吗? -
@Helper 方法:不,我没有尝试过你的命令
-
@Helper 方法:
-cp在使用-jar时被忽略 -
@Helper 方法:我得到了同样的错误
-
@a_horse_with_no_name:你说得对