首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过Java命令创建Jar文件需要帮助吗?

通过Java命令创建Jar文件需要帮助吗?
EN

Stack Overflow用户
提问于 2011-04-20 11:41:26
回答 3查看 363关注 0票数 0

我需要创建我的java应用程序的jar文件。首先,我创建了一个名为Manifest.MF的文件,在该文件中,我存储了以下代码

代码语言:javascript
复制
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时,我得到了上面的异常,所以我混淆了循环孔在哪里。

EN

回答 3

Stack Overflow用户

发布于 2011-04-20 11:47:52

您可能应该使用以下语法来构建jar:

代码语言:javascript
复制
jar cvfm myapp.jar myapp.MF -C classes myclasspath
票数 0
EN

Stack Overflow用户

发布于 2011-04-20 12:24:55

好吧,嗯,有几件事:

下面是您应该如何运行应用程序:

代码语言:javascript
复制
java -classpath myapplication.jar:.. -Dlog4j.info -Dlog4j.configuration=file:../../conf/log4j.xml com.mywebsite.Benchmarks

如果你不需要的话,把log4j的东西拿出来。我相信您只是缺少了"com.mywebsite.Benchmarks“行,它告诉jar从哪个编译类开始。如果您有基准测试,FullTest,MainApp都编译在jar中,并且主要方法在基准测试中,则需要告诉jar。

至于建造你的罐子..。

这是最容易使用某种蚂蚁构建脚本。

代码语言:javascript
复制
<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>

这应该能让你开始。但是当你运行它的时候,你需要确定一些事情:

  1. 您有类路径上的所有依赖项。
  2. 告诉jar从哪个类开始。
票数 0
EN

Stack Overflow用户

发布于 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“。你其实不想要那个文件夹;你想要里面的所有文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5729612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档