我想创建一个包含其他JAR库的可执行JAR文件。但是当我执行JAR时,它会出现类路径问题的错误。
如何解决类路径问题?
答案 0 :(得分:9)
我想你可以这样试试;
这是一个简单的例子。首先,我们假设我们有一个项目目录,如D:\javademo
。在这个工作目录中,我们创建一个主类 HelloWorld.java ,thtat包含我们的其他JAR文件,如commons-lang.jar
。现在,我们必须将主要类HelloWorld和commons-lang.jar归档到test.jar文件中。
首先我们必须编辑清单文件,以便我们可以指定class-path和main-class 像这样:
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
这是我的解决方案。我希望它给你一些有用的东西......
答案 1 :(得分:-1)
您应该使用第三方库。例如,OneJar。您必须使用OneJar工具(如Ant任务)而不是标准JRE工具来构建最终的JAR文件。
在运行这样的JAR文件时,将启动OneJar的服务类而不是您的服务类。然后,该类加载包含在内部的JAR文件以及您的类,并运行您的主类。
已经有类似的问题和答案。例如:Stack Overflow问题 Easiest way to merge a release into one JAR file 。