应用程序如何启动java,如何重新启动Java应用程序?

How can I restart a Java AWT application? I have a button to which I have attached an event handler. What code should I use to restart the application?

I want to do the same thing that Application.Restart() do in a C# application.

解决方案

Of course it is possible to restart a Java application.

The following method shows a way to restart a Java application:

public void restartApplication()

{

final String javaBin = System.getProperty("java.home") + File.separator + "bin" + File.separator + "java";

final File currentJar = new File(MyClassInTheJar.class.getProtectionDomain().getCodeSource().getLocation().toURI());

/* is it a jar file? */

if(!currentJar.getName().endsWith(".jar"))

return;

/* Build command: java -jar application.jar */

final ArrayList command = new ArrayList();

command.add(javaBin);

command.add("-jar");

command.add(currentJar.getPath());

final ProcessBuilder builder = new ProcessBuilder(command);

builder.start();

System.exit(0);

}

Basically it does the following:

Find the java executable (I used the java binary here, but that depends on your requirements)

Find the application (a jar in my case, using the MyClassInTheJar class to find the jar location itself)

Build a command to restart the jar (using the java binary in this case)

Execute it! (and thus terminating the current application and starting it again)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值