如果我有外部Jar依赖项,如何生成.class文件? Javac不起作用

时间:2015-01-16 23:33:27

标签: java manifest javac executable-jar manifest.mf

背景:在ec2实例上运行而不是eclipse。

我有一个具有外部Jar依赖项的java程序。我想为这个java程序创建一个可执行jar文件(能够将外部jar文件打包到这个jar文件中会很锦上添花)

问题是,对于我来说,使用java cf或cmf命令我需要一个.class文件。但是,当我尝试使用javac HKP.java时,会抛出一堆错误,说“xyz不存在或者无法识别符号”,我猜这是因为它不知道外部jar依赖项。

我尝试过做javac -sourcepath / home / ec2-user / apps / HKP / lib / HKP.java,但它会抛出与以前完全相同的错误。

编辑我试过javac -classpath file1.jar,file2.jar,file3.jar HKP.java -I也尝试了这个用“;”之间。两个都返回错误,说找不到-bash file2.jar命令,所以不是继续参数,而是bash将多个jar文件识别为命令。这是我遇到的最初问题导致我在这里发布。

非常感谢任何帮助。谢谢!

2 个答案:

答案 0 :(得分:1)

如果要将java源文件编译到类中,则需要在编译器的类路径上提供该代码中使用的所有类。

如果类来自(已经编译好的)外部JAR,通常通过使用javac -classpath(在Linux上)分隔的JAR文件列表指定:来实现。但是你应该考虑使用IDE或至少一个maven构建文件(它有好处,它甚至可以为你下载这些JAR)。

两者(Eclipse IDE和Maven build system)也可以生成一个带有外部类的ueber-jar,以便于执行。

答案 1 :(得分:-2)

尝试在系统变量中添加路径并重新启动计算机。