简体   繁体   中英

How to run application with parameters from within java application on mac osx

I am writing a small java application to load ZDoom with custom wad files on mac osx and am having trouble executing the command.

I have generated a string within the application that will run ZDoom and load the custom wad, I have tested this by copy-pasting the string from the netbeans breakline debugger and running it directly in terminal.

When I run the code through my application ZDoom does load up but it does so without the custom wad so I believe it is executing without it's arguments.

I have tried two different techniques to run the command:

private void loadZdoom()  {
    // get selected wad
    String wad = (String) wadListComboBox.getSelectedItem();

    ProcessBuilder builder = new ProcessBuilder(defaultZdoomInstallPath + "/Contents/MacOS/zdoom", "-file", defaultZdoomWadsPath.replace(" ", "\\ ") + "/" + wad);
    builder.redirectErrorStream(true);
    try {
        Process p = builder.start();
    } catch (IOException ex) {

    }
}

And

private void loadZdoom()  {
    // get selected wad
    String wad = (String) wadListComboBox.getSelectedItem();
    String runCommand = defaultZdoomInstallPath + "/Contents/MacOS/zdoom " + "-file " + defaultZdoomWadsPath.replace(" ", "\\ ") + "/" + wad;

    try {
            Runtime runTime = Runtime.getRuntime();
            Process process = runTime.exec(runCommand);
    } catch (IOException e) {

    }
}

What am I doing wrong here?

I figured out what the problem was, I was escaping the space in the path to the wad file as you need to do this in terminal but it seems this is unnecessary in JAVA. All is working as expected now :)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM