2013-05-30 166 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,你可以遠離所有這些煩惱,因爲它會自動下載所有的依賴關係。