【问题标题】:How to build JAR files dynamically如何动态构建 JAR 文件
【发布时间】:2012-10-11 20:54:02
【问题描述】:

我正在制作一个程序,该程序需要能够让客户更改设置,并使用我所谓的“生成器”创建一个 .jar,用它们的设置替换类中的一些常量。

换句话说,我有一个包含几个文本字段的 GUI,因此当他们按下标有 Build 的 JButton 时,它会在常量类中创建一个新的可运行 Jar,其设置会随着文本字段中的内容而更改。

这可能吗?我听说过 ANT 脚本,但我不确定这是否就是我要在这里寻找的。​​p>

谢谢

【问题讨论】:

  • 检查this,在那里您可能会找到以编程方式创建 jar 所需的所有信息
  • @h3nr1x 谢谢你,但是在创建 jar 之前我将如何更改类中的某些内容?
  • 以下链接可能对您有所帮助stackoverflow.com/questions/928896/…
  • “用它们的设置替换类中的一些常量。” 那么不是很“常量”,是吗? ;) 我觉得更好的方法是将值写入一个属性文件,该文件位于两个应用程序都可以访问的位置。和最终用户。那将是类似${user.home}/settings/com/our/app/properties.prop 的路径

标签: java persistence


【解决方案1】:

您是否考虑过使用 .properties 文件或类似文件?您可以使用 ant 脚本来描述您所描述的内容(查看 http://ant.apache.org/manual/Tasks/replaceregexp.html,您可以在 build.xml 中使用此任务来动态更改 .java 文件,但看起来有点笨拙)但它可能不是最佳解决方案。

查看此页面:http://www.mkyong.com/java/java-properties-file-examples/,其中包含有关从属性文件保存/加载的一些详细信息。您可以设置常量类以从该文件加载它的状态变量,并设置 Build JButton 以创建该属性文件。

我正在尝试考虑一个用例,您希望修改类源本身而不是使用属性文件,但老实说我做不到。所以我想你可能有一些特殊情况,这对你来说不是一个站得住脚的解决方案,但 99% 的情况下我会建议你这样做。

【讨论】:

  • 我想我可以使用来自 h3nr1x 的链接将它存储在 JAR 中,然后像这样使用它。谢谢:)
  • 没有。请参阅this answer - 罐子通常是“只读的”。除非你的意思是一个全新的罐子。
  • @AndrewThompson 我的意思是创建属性文件并将其存储在 Jar 中。属性文件不会被更改,只是从中读取。所以从你发布的问题来看,我似乎可以做到这一点,对吗?谢谢。
  • 只是在此基础上构建,我感觉您正在构建的想法是人们使用您的 GUI 输出一个 jar,他们可以将其放在可移动磁盘上或通过电子邮件发送给自己,然后使用。是不是接近这个案子了?如果是这样,那么一个全新的 jar 可能是解决方案(IE,你有你的 gui 应用程序以及你制作的其他一些应用程序,GUI 使用用户选择的设置创建一个 jar,他们蹒跚着把它带到他们的工作站,永远不要再修改设置)。如果想法是允许用户更改一个应用程序的设置(使用该应用程序)
  • ...然后用户主页中的属性文件就是要走的路
猜你喜欢
  • 1970-01-01
  • 2020-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-24
  • 2021-12-28
  • 1970-01-01
相关资源
最近更新 更多