2013-05-30 96 views
0

我正在申请发布的最后一步,因此创建了jar,名为App.jar。我有其他的依赖App.jar的罐子,所以我宁愿把它包含在App.jar之内。试图运行时,如果将App.jar放入主项目的文件夹中,它将起作用。但是,当它放在它外面(例如在dekstop上)时,它不能完全工作,这意味着某些GUI组件不显示。我的问题是:什么都是最终的jar依赖?

除了我的App.jar依赖的其他罐子,它可以依赖于一些其他文件或在其他一些条件下?


编辑:

我在Eclipse中工作,建立罐子我只是出口,并选择了选项“打包所需的库到生成的JAR”,这使我需要运行到应用程序中的所有罐子。罐。然后我的MANIFEST.MF看起来是这样的:

Manifest-Version: 1.0 
Rsrc-Class-Path: ./ JTattoo.jar plugin.jar docking-frames-common-1.1.1 
-SNAPSHOT.jar jl1.0.jar swt-3.7M5-win32-win32-x86.jar worldwind.jar a 
ccess-bridge.jar sunpkcs11.jar looks-2.0.1.jar tools.jar OfficeLnFs_2 
.7.jar jce.jar jna_WindowUtils.jar dom4j-2.0.0-ALPHA-2.jar junit-4.5. 
jar rt.jar mysql-connector-java-5.1.21-bin.jar sunmscapi.jar glasslib 
.jar resources.jar jxl.jar dnsns.jar sunec.jar jogl.jar mp3spi1.9.4.j 
ar docking-frames-core-1.1.1-SNAPSHOT.jar DJNativeSwing.jar tritonus_ 
share.jar dom4j-2.0.0-ALPHA-2-sources.jar zipfs.jar MozillaInterfaces 
-1.8.1.3.jar jfr.jar DJNativeSwing-SWT.jar gluegen-rt.jar jaxen-1.1.1 
.jar gdal.jar localedata.jar jna-3.2.4.jar charsets.jar sunjce_provid 
er.jar jsse.jar jaccess.jar 
Class-Path: . 
Rsrc-Main-Class: org.cnstar.wiki.app.GreatPlaces 
Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader 
SplashScreen-Image: images/splash_screen.png 
+0

你在考虑classpath,研究那个。 –

+0

你用什么来建立你的jar文件?蚂蚁还是Maven?两者都可以选择包含依赖关系。 –

+0

您如何做到这一点取决于您使用的构建工具,因此请编辑您的问题以指明您正在使用的内容。 – Raedwald

回答

1
  1. 你应该正确设置classpath以包括所有所需的罐子。

  2. 是的,由于传递依赖性,可以存在更多的罐子依赖性。你的App.jar可能依赖于一个jar,这可能依赖于另一个jar。使用Maven,你可以远离所有这些烦恼,因为它会自动下载所有的依赖关系。