创建包含其他库文件的JAR文件
我想创建一个包含其他JAR库的可执行JAR文件。 但是当我执行JAR时,它会给出类路径问题的错误。
如何解决类路径问题?
我想你可以这样试试;
这是一个简单的例子。 首先,我们假设我们有一个项目目录,如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
这是我的解决方案。 我希望它给你一些有用的东西……
您应该使用第三方库。 例如, OneJar 。 您必须使用OneJar工具(如Ant任务)而不是标准JRE工具来构建最终的JAR文件。
在运行这样的JAR文件时,将启动OneJar的服务类而不是您的服务类。 然后,该类加载包含在内部的JAR文件以及您的类,并运行您的主类。
已有类似的问题和答案。 例如:Stack Overflow问题将发布合并到一个JAR文件中的最简单方法 。
- 如何覆盖存放在ant lib目录中的ant任务
- 在Singleton类中加载属性文件
- 控制servlet中的类路径
- 带有来自Jar的多个XML文件的Spring ApplicationContext
- Class.getResourceAsStream的解释以及如何在Tomcat中为简单的Java Web应用程序设置它?
- 从命令行运行时将jar添加到类路径
- 执行JAR时java.lang.ClassNotFoundException:com.mysql.jdbc.Driver
- Java:来自class.getResource(…)的NullPointerException
- 从命令行运行Mahout(CLASSPATH)