Java-重新启动在eclipse中运行的程序
所以,基本上,我有一个JComboBox,我用它来更改应用程序的当前语言。 为了实现这一点,因为我有很多组件,我不想手动更改所有按钮上的文本,…,我认为最好的解决方案是使用-language XX参数重新启动程序,我可以在程序启动方法上轻松处理该参数 此代码执行以下任务:Java-重新启动在eclipse中运行的程序,java,eclipse,restart,Java,Eclipse,Restart,所以,基本上,我有一个JComboBox,我用它来更改应用程序的当前语言。 为了实现这一点,因为我有很多组件,我不想手动更改所有按钮上的文本,…,我认为最好的解决方案是使用-language XX参数重新启动程序,我可以在程序启动方法上轻松处理该参数 此代码执行以下任务: public static void restartApplication(String language) { String javaBin = System.getProperty("java.home") + F
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);
}
我的问题是,在这种情况下,如何使它在IDEEclipse中工作?
我需要找到Eclipse编译的程序的主类吗
编辑:实际上,以一种我不必重新启动程序的方式设计它会更好。谢谢 我知道我不会直接回答您关于如何重新启动运行eclipse的程序的问题,因为您不必重新启动程序来更改语言 正如艾奥贝所说: 我建议您设计您的应用程序,以便 这是很容易清理每件事,然后创建一个新的 主类的实例 您应该将应用程序设计为只在main方法中创建实例
public static void main(String[] args) {
boolean restart;
do {
restart = new MainClass().switchLang();
} while (restart);
}
如果更改语言,则让switchLang返回true。为什么不在运行时更改系统属性呢?作为用户,我不希望在更改语言时程序会自动重新启动。我建议你有一个方法,可以通过它进行任何必要的文本更改。嗯,我可能会这样做。