【发布时间】:2011-11-29 14:58:03
【问题描述】:
我已经创建了一个带有清单的可执行 JAR:
Manifest-Version: 1.0
Main-Class: MyClass
Class-Path: lib/ext.jar
如果我在创建的 .jar 文件夹中有包含依赖 ext.jar 的文件夹 lib,我可以成功运行此 JAR。
我想在我的可执行 JAR 中嵌入 ext.jar 以便在我想要的任何地方启动它,而无需创建 lib 文件夹。这将允许 JAR 文件是自包含的,包括其所有依赖项。
有什么办法吗?
【问题讨论】:
-
我建议使用 Maven 构建。见链接:stackoverflow.com/questions/1729054/…
-
应用程序。有图形用户界面吗?如果是这样,更好的部署选项可能是Java Web Start。 JWS 使得向应用程序的运行时类路径添加额外的 Jars 变得简单。更好的是,JWS 可以提供简洁的桌面快捷方式或菜单项(带有自定义图标)来启动应用程序。
-
@AndrewThompson 可以在没有 GUI 的情况下使用 JWS 吗?而且我猜您还可以创建一个 .jnlp 并将其与您的 jar 一起分发(那么没有“Web”)?
-
"在没有 GUI 的情况下使用 JWS?" 不,它是针对应用程序的。带有图形用户界面。正如(我认为是)在链接中清楚地解释了。 “我猜你也可以创建一个 .jnlp 并将其与你的 jars 一起分发(那么没有“Web”)?” 不,它旨在从 Internet 或某种网络启动。他们没有将其称为“Java Web Start”,而是将扩展名命名为“Java Network Launch Files”。 ;)
标签: java jar executable