我需要创建我的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.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native,java.lang.ClassNotFoundException: com.demo.test.JavaSamp )在java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)在java.lang.ClassLoader.loadClass(ClassLoader.java:248),找不到主类: com.demo.test.JavaTest。程序将退出。
请告诉我,我想创建一个jar,我必须将我项目目录中的文件打包到那个jar文件中,当我解压jar时,我得到了我的项目文件夹,但是当我运行jar时,我得到了上面的异常,所以我混淆了循环孔在哪里。
发布于 2011-04-20 11:47:52
您可能应该使用以下语法来构建jar:
jar cvfm myapp.jar myapp.MF -C classes myclasspath发布于 2011-04-20 12:24:55
好吧,嗯,有几件事:
下面是您应该如何运行应用程序:
java -classpath myapplication.jar:.. -Dlog4j.info -Dlog4j.configuration=file:../../conf/log4j.xml com.mywebsite.Benchmarks如果你不需要的话,把log4j的东西拿出来。我相信您只是缺少了"com.mywebsite.Benchmarks“行,它告诉jar从哪个编译类开始。如果您有基准测试,FullTest,MainApp都编译在jar中,并且主要方法在基准测试中,则需要告诉jar。
至于建造你的罐子..。
这是最容易使用某种蚂蚁构建脚本。
<target name="build">
<delete file="MyApplication.jar" />
<delete dir="_classes" />
<mkdir dir="_classes" />
<javac srcdir="src" destdir="_classes" debug="true">
<classpath path="../../3rdParty/log4j/log4j-1.2.16.jar" />
</javac>
<jar jarfile="MyApplication.jar" basedir="_classes"/>
</target>这应该能让你开始。但是当你运行它的时候,你需要确定一些事情:
发布于 2011-04-20 16:28:52
有些事我能想到:
错误消息说它找不到文件com/demo/test/JavaTest.class。您可以尝试使用zip文件程序查看jar文件( .jar文件被压缩,就像.zip文件一样),以查看该文件是否真的不在其中。我怀疑错误代码实际上是正确的,因为它实际上并不存在,但至少您可以亲眼看到它(或看不到它)。请记住,它必须以"com“文件夹开头。
也许您混淆了.class文件和.java文件。您确定您的.java文件实际上已编译成.class文件吗?这可能不太可能,但也可以这么说。
也许您需要使用"C:\JavaSamples\MyApp\*"运行jar命令,以选择正确目录中的所有文件。也许您是在告诉jar命令包含文件夹"MyApp“。你其实不想要那个文件夹;你想要里面的所有文件。
https://stackoverflow.com/questions/5729612
复制相似问题