非常的菜鸟问题。 我有一个java类
package org.foobar;
import thirdparty_jar1;
import thirdparty_jar2;
public class FooBar{
public static void main(String[] args){
// some code
}
}
我使用eclipse作为我的ide,我在它的构建路径中添加了第三方jar 1和jar 2。然后我继续导出jar。
现在我有一个foobar.jar
文件,现在我想运行它..
我做了java -cp /path/to/foobar.jar org.foobar.FooBar
但它抱怨缺少第三方图书馆。 我如何运行我的罐子(或者可能是一个胖罐子)。我只想从命令行运行我的程序。 感谢
答案 0 :(得分:1)
jar有一个名为MANIFEST.MF的清单文件,位于META-INF文件夹下。这包含有关jar文件,主类等的详细信息。默认情况下Eclipse创建一个,您可以修改它或指定您自己的清单文件。
请参阅http://docs.oracle.com/javase/tutorial/deployment/jar/manifestindex.html
和Understanding the Default Manifest。
要将库添加到类路径,您需要将jar文件的路径添加到清单文件中,如下所示:
Class-Path: jar1-name jar2-name directory-name/jar3-name
答案 1 :(得分:1)
如果您正在使用Maven,则可以将其添加到您的pom.xml文件中。这将创造一个额外的"脂肪"每当你使用Maven构建时都会使用jar。它包含在' build.plugins'部分:
<build>
<plugins>
...
<!--
The plugin below creates an additional, executable JAR with all dependencies
included in it.
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>attached</goal>
</goals>
</execution>
</executions>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>${package}.FooBar</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
...
</plugins>
</build>
答案 2 :(得分:0)
既然您说您使用的是Eclipse,那么您是否知道可以通过IDE导出可运行的JAR 和所有依赖项?右键单击项目,然后选择“导出”。搜索“Runnable JAR”。你应该看到这个:
现在您有几个选择:
将所需的库提取到生成的JAR中。
这将解压第三方JAR并将它们与您的班级一起重新打包到一个JAR中。
将所需的库打包到生成的JAR中。
这将包括第三方JAR到您的JAR中,以及一些特殊的Eclipse魔法来在需要时解压缩它们。
将所需的库复制到子文件夹
这会将第三方JAR复制到一个文件夹中,然后更新JAR的清单,将第三方JAR相对文件引用添加到类路径中。