【问题标题】:What everything is final jar dependent on?最终的 jar 依赖于什么?
【发布时间】:2013-05-30 13:31:57
【问题描述】:

我正处于应用程序发布的最后一步,因此创建了jar,称为App.jar。我还有 App.jar 所依赖的其他 jar,所以我宁愿将它包含在 App.jar 中。尝试运行时,如果将App.jar 放入主项目的文件夹中,则它可以工作。但是,当放在它外面时(例如放在桌面上),它不能完全工作,这意味着一些 GUI 组件没有显示。我的问题是:

除了我的App.jar所依赖的其他jar之外,它是否可以依赖于其他一些文件或在一些其他条件下?


编辑:

我在 Eclipse 中工作,为了构建 jar,我只是将其导出并选择了“将所需的库打包到生成的 JAR”选项,这会将我需要运行的所有 jar 放入 App.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

【问题讨论】:

  • 你在考虑类路径,研究一下。
  • 你用什么来构建你的jar文件?蚂蚁还是 Maven?两者都有包含依赖项的选项。
  • 如何执行此操作取决于您使用的构建工具,因此请编辑您的问题以说明您使用的是什么。
  • 这个问题很可能被标记为重复。参见例如http://stackoverflow.com/questions/574594/how-can-i-create-an-executable-jar-with-dependencies-using-maven

标签: java jar executable-jar


【解决方案1】:
  1. 您应该正确设置类路径以包含所需的所有 jar。

  2. 是的,由于传递依赖,可能会有更多的 jar 依赖。您的 App.jar 可能依赖于一个 jar,而该 jar 可能依赖于另一个 jar。使用 Maven,您可以摆脱所有这些烦恼,因为它会自动下载所有依赖项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 2014-09-09
    • 2023-03-18
    • 2011-04-18
    • 2011-08-23
    • 2015-05-24
    相关资源
    最近更新 更多