2012-10-22 85 views
2

我正在做的是需要能够让客户更改设置一个程序,用什么我称为“生成器”,创建一个.jar,在一类取代一些常量与他们的设置。如何构建JAR文件动态

换句话说,我有一个GUI,它有几个文本框,这样当他们按下标记为Build的JButton时,它会创建一个新的Runnable Jar,其中的Constants类的设置随文本域中的内容而改变。

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

谢谢

+3

检查[这](http://stackoverflow.com/questions/1281229/how-to-use-jaroutputstream-to-create-a-jar-file),那里你会发现你需要创建的所有信息一个程序化的jar – higuaro

+0

@ h3nr1x感谢你,但是我怎么会在创建jar之前改变类中的某些东西? – Austin

+0

下面的链接可能会帮助你 http://stackoverflow.com/questions/928896/dynamically-generate-jar-files-based-on-package-name-with-ant – Ruser1510890

回答

4

你有没有考虑过使用.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%的时间是我建议你去做的。

+0

和我想象我可以将此存储与来自h3nr1x链接的JAR,然后用它像。谢谢:) – Austin

+1

号参见[这个答案](http://stackoverflow.com/questions/5052311/how-can-a-java-program-use-files-inside-the-jar-for-read-and-写/ 5052359#5052359) - 罐子通常是'只读'。除非你的意思是**全新的Jar。** –

+0

@AndrewThompson我的意思是创建属性文件并将其存储在Jar中。属性文件不会被更改,只需读取。所以从你发布的问题看来,我可以做到这一点,对吗?谢谢。 – Austin

相关问题