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

时间:2014-11-11 12:36:50

标签: java eclipse restart

所以,基本上,我有一个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编译?)?

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

1 个答案:

答案 0 :(得分:0)

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

就像aioobe说here

  

我建议你设计你的应用程序   它很容易清理每一件事,然后创造一个新的   您" main"的实例类。

您应该设计应用程序除了在main方法中创建实例外什么都不做。

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

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

如果您更改语言,请switchLang()返回true。