Java-重新启动在eclipse中运行的程序

Java-重新启动在eclipse中运行的程序,java,eclipse,restart,Java,Eclipse,Restart,所以,基本上,我有一个JComboBox,我用它来更改应用程序的当前语言。 为了实现这一点,因为我有很多组件,我不想手动更改所有按钮上的文本,…,我认为最好的解决方案是使用-language XX参数重新启动程序,我可以在程序启动方法上轻松处理该参数 此代码执行以下任务: public static void restartApplication(String language) { String javaBin = System.getProperty("java.home") + F

所以,基本上,我有一个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);
}
我的问题是,在这种情况下,如何使它在IDEEclipse中工作? 我需要找到Eclipse编译的程序的主类吗


编辑:实际上,以一种我不必重新启动程序的方式设计它会更好。谢谢

我知道我不会直接回答您关于如何重新启动运行eclipse的程序的问题,因为您不必重新启动程序来更改语言

正如艾奥贝所说:

我建议您设计您的应用程序,以便 这是很容易清理每件事,然后创建一个新的 主类的实例

您应该将应用程序设计为只在main方法中创建实例

public static void main(String[] args) {
    boolean restart;

    do {
        restart = new MainClass().switchLang();
    } while (restart);
}

如果更改语言,则让switchLang返回true。

为什么不在运行时更改系统属性呢?作为用户,我不希望在更改语言时程序会自动重新启动。我建议你有一个方法,可以通过它进行任何必要的文本更改。嗯,我可能会这样做。