有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何执行批处理文件,通过单击JMenuItem在windows上重新启动服务?

我正在尝试创建一个UI并运行一个批处理文件,只需单击一个菜单项即可重启后台运行的服务。我可以制作菜单并添加菜单项,如下所示:

JMenu menu = new("menu");
JMenuItem restart_service= new JMenuItem("Restart service");
        menu .add(restart_service);

然后,我在菜单项中添加了一个侦听器来运行批处理文件:

    restart_service.addActionListener (new ActionListener(){
        @Override
        public void actionPerformed(ActionEvent ae) {
            openWebPage(
                    "file://path to bat file/batchfile.bat");
        }
        public void openWebPage(String url) {
            try {
                java.awt.Desktop.getDesktop().browse(java.net.URI.create(url));
            } catch (java.io.IOException e) {
                System.out.println(e.getMessage());
            }
        }           
    });

然而,每次我尝试这个,cmd窗口就会弹出并打印“拒绝访问”。虽然我更改了文件的前置任务,使其在没有管理员身份的情况下运行。不知道如何解决这个问题,或者是否有办法通过点击菜单项以管理员身份执行批处理文件。任何帮助都将不胜感激


共 (1) 个答案

  1. # 1 楼答案

    试试这个

    try{    
    Process mp = Runtime.getRuntime().exec("BAT LOC");
    mp.waitFor();
    }catch( Exception procRunException ){
    }