【发布时间】:2014-11-11 21:11:06
【问题描述】:
所以,基本上,我有一个 JComboBox 用于更改应用程序的当前语言。 为了实现这一点,由于我有很多组件并且我真的不想手动更改所有组件(按钮,...)上的文本,我认为最好的解决方案是使用“-”重新启动程序language "XX"" 参数(我可以在程序启动方法上轻松处理)。
这段代码完成了这项工作:
public static void restartApplication(String language)
{
String javaBin = System.getProperty("java.home") + File.separator + "bin" + File.separator + "java";
File currentJar = new File(Main.class.getProtectionDomain().getCodeSource().getLocation().toURI());
// Build command: java -jar application.jar -language "EN"
String command = "\"";
command += javaBin + "\"" +
" -jar " + "\"" + currentJar.getPath() + "\"" +
" -language \"" + language + "\"";
// Execute command
new ProcessBuilder(command).start();
// Close the current instance
System.exit(0);
}
我的问题是,如何使它在 IDE(在本例中为 Eclipse)中工作? 是否需要定位程序的主类(由Eclipse编译?)?
编辑:实际上,以我不必重新启动程序的方式设计它会更好。谢谢!
【问题讨论】:
-
为什么不在运行时更改系统属性?
-
作为用户,我不希望程序在我更改语言时自行重启。我建议您只使用一种方法,该方法可以通过并进行任何必要的文本更改。