2012-01-17 105 views
6

我想创建一个包含其他JAR库的可执行文件JAR。但是当我执行JAR时,它会给出类路径问题的错误。创建一个包含其他库文件的JAR文件

如何解决类路径问题?

+0

*“我想创建一个包含其他jar库的可执行Jar”*你想要什么不比重要的东西重要。多次使用[JWS](http://stackoverflow.com/tags/java-web-start/info)或其他类型的安装程序部署多个Jars已被证明可以很好地运行。 – 2012-01-17 07:45:08

+0

重复的问题http://stackoverflow.com/questions/5424761/java-packaging-building-common-techniques-jar-file-specifically/5424847#5424847 – 2012-01-17 08:29:47

回答

9

我想你可以尝试这样;

这是一个简单的例子,为你提问。首先,我们假设我们有一个项目目录,如D:\javademo。在这个工作目录中,我们创建一个主类HelloWorld.java并且thtat包含我们的其他JAR文件,如commons-lang.jar。现在,我们必须将我们的主要类HelloWorld和commons-lang.jar归档到test.jar文件中。

首先,我们必须修改我们的清单文件,使我们可以像这样指定我们的类路径和主类 :

Manifest-Version: 1.0 
Created-By: tony example 
Class-Path: test.jar commons-lang.jar 
Main-Class: org.tony.java.HelloWorld 

我们命名该文件test.mf。现在我们用jar命令生成我们的JAR文件是这样的:

jar -cvfm test.jar test.mf -C ./ . 

然后,它会生成JAR文件test.jar。您可以使用此命令使用java命令来运行这个主类:

java -jar test.jar 

这是我的解决方案。我希望它给你一些有用的东西......

+0

非常感谢,我很困惑如何添加库依赖到jar文件 – 2017-12-02 11:43:31

0

您应该为它使用第三方库。例如,OneJar。您必须使用OneJar工具(如Ant任务)而不是标准JRE的工具构建最终的JAR文件。

在运行这样一个JAR文件时,将启动OneJar的服务类而不是您的。这个类然后加载包装在里面的JAR文件,以及你的类,并运行你的主类。

还有类似的问题和答案。例如:堆栈溢出问题Easiest way to merge a release into one JAR file

+0

我试过的东西,但没有工作。 – 2012-01-17 07:16:40

+0

你什么时候试过的? – 2012-01-17 07:46:51

+0

我在发布之前曾尝试过很多次,但仍无法正常工作。 – 2012-01-17 08:39:11

相关问题