2011-09-25 61 views
4

我对Java仍然很陌生,而且我很新的导出.jar文件。我有一个我想发送给一些朋友的小游戏,我在另一个问题中被告知我应该将其导出到可执行的jar文件中。那么我终于在计算机上工作了,但是当我将它发送给其他人时,它不起作用,因为他们没有图书馆。在.jar文件中导出java库

我正在导入objectdraw库,但没有,我的程序根本无法运行!

所以基本上我需要找到一种方法来导出对象绘图库作为我的.jar文件的一部分,以便他们也可以使用它。我是否简单地将它包含在jar命令的包含文件部分中? ex:jar cmf MANIFEST.mf Archery.jar * /System/Library/Java/Extensions/objectdraw.jar

还是什么?我现在正在使用命令行。

+2

您正在使用Eclipse IDE吗?最简单的方法是使用导出向导... – Matt

+0

不,我一直在命令行工作。我有netbeans,但我从来没有使用它。 – CaldwellYSR

+0

开始使用Eclipse。或智能。甚至是NetBeans。 – ben

回答

0

发现我发现这样做的最好方法是将库解压缩,然后将所有生成的文件放入最终压缩文件中。这样它实际上在其他计算机上工作。

jar xf library_wanted.jar; jar cvmf MANIFEST.mf end_result.jar *.class library_wanted/ 
+0

此解决方案不起作用。 –

+0

该解决方案的哪部分功能无效?我这样做已经5年了。从我记得我只是解压缩.jar文件并将其添加到最终的.jar文件中,我没有问题。 – CaldwellYSR

2

最简单的方法是发送JAR库文件,并将Class-Path条目添加到清单。此项目将如下所示:

Class-Path: objectdraw.jar 

你也可以手动设置CLASSPATH环境变量。

或者,您可以解压缩库并将所有(或只是所需的文件)添加到最终的jar文件中。但这并不总是奏效,因为有些库依赖于teir JAR文件的完整性。

最后,可以在主JAR中包含依赖项,但它需要一个自定义类加载器。

+0

将类路径只是objectdraw.jar或整个路径? – CaldwellYSR

+0

@Cald如果它们在同一个目录中,它将只是'objectdraw.jar'。例如,您也可以将这些库放在一个名为'lib'的子目录中,而不是使用'lib/objectdraw.jar'。 – Artefacto

+0

好的,我想我可以那样做。感谢您的帮助 – CaldwellYSR