如何从jar运行exe?

时间:2020-03-23 08:21:26

标签: java jar

我有一个简单的java类,如下所示。

public class Launcher {

    public static void main(String[] args) {
        launchURLInBrowser("http://google.com");
    }

    private static void launchURLInBrowser(String url) {
        try {
            Process p = Runtime.getRuntime().exec(new String[]{"C:\\Users\\Administrator\\Downloads\\chrome-win\\chrome.exe", "--kiosk", url});
            p.waitFor();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

我在课堂上唯一要做的就是以信息亭模式启动Chrome Web浏览器,并且效果很好。

现在,我需要将该类捆绑在jar文件中并分发。我将在网络浏览器zip旁边分发jar。因此,我需要放置相对路径,而不是现在给出的硬代码路径。

我的jar发行版将具有以下文件夹结构。 Chrome浏览器不会放在罐子里。它将位于外部,但位于同一文件夹内,如下所示。

launcher.jar
chrome-win
    -other files and folders
    -chrome.exe

我该怎么做?

2 个答案:

答案 0 :(得分:0)

我想您正在使用Windows操作系统。
我希望有这样的文件夹

launcher.bat
jre
lib
   -launcher.jar
chrome-win
   -other files and folders
   -chrome.exe

在launcher.bat

  1. 使用bat获取当前路径,并将其用作Java的RootPath
  2. 设置Java主页(RootPath / jre),类路径(RootPath / lib)等
  3. 使用路径chrome.exe和url作为主要方法的参数来执行Launcher.java。

希望可以提供帮助。

答案 1 :(得分:-1)

我认为您可以尝试使用

getClass().getClassLoader().getResource("Downloads\\chrome-win\\chrome.exe")

代替绝对路径...或者尝试这种逻辑