所以,基本上,我有一个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编译?)?
编辑:实际上,以我不必重新启动程序的方式进行设计会更好。谢谢!
答案 0 :(得分:0)
我知道我没有直接回答你关于如何重新启动运行eclipse的程序的问题,因为你不必重新启动程序来改变语言。
就像aioobe说here:
我建议你设计你的应用程序 它很容易清理每一件事,然后创造一个新的 您" main"的实例类。
您应该设计应用程序除了在main方法中创建实例外什么都不做。
public static void main(String[] args) {
boolean restart;
do {
restart = new MainClass().switchLang();
} while (restart);
}
如果您更改语言,请switchLang()
返回true。