Creating a JAR file which contains other library files

后端 未结 2 1668
没有蜡笔的小新
没有蜡笔的小新 2020-12-08 17:58

I want to create one executable JAR file which contains other JAR libraries. But when I execute the JAR, it gives an error of class path problem.

How do I solve the

相关标签:
2条回答
  • 2020-12-08 18:19

    You should use third-party libraries for it. For example, OneJar. You'll have to build the final JAR file using the OneJar tool (like Ant task) instead of standard JRE's tools.

    On running such a JAR file, OneJar's service class is launched instead of yours. This class then loads JAR files packed inside, as well as your classes, and run your main class.

    There are similar questions and answers already. For example: Stack Overflow question Easiest way to merge a release into one JAR file.

    0 讨论(0)
  • 2020-12-08 18:25

    I think you can try it like this;

    Here is a simple example for you question. First, we assume we have a project directory like D:\javademo. In this working directory we then create a main class HelloWorld.java and thtat contains our other JAR files, like commons-lang.jar. Now, we must archive our main classes HelloWorld and commons-lang.jar into test.jar file.

    First we must edit our manifest file so that we can specify our class-path and main-class like this:

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

    We named this file test.mf. Now we use the jar command to generate our JAR file like this:

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

    Then it will generate the JAR file test.jar. You can use this command to run this main class using java command:

    java -jar test.jar
    

    That is my solution. I hope it give you something helpful...

    0 讨论(0)
提交回复
热议问题