【问题标题】:How to execute command line from Java with setting the variables如何通过设置变量从 Java 执行命令行
【发布时间】:2014-04-10 08:27:40
【问题描述】:
try {
            String command = "java -Xms64m -Xmx512m -cp %mypath% com.app.GenericAxlTool -i " + ip + " -v 6.0 -a " + axlVer + " -d " + dbVer + " -u " + userName + " -p " + password + " -c sqlselect -f " + queryFile;
            String[] envArr = {pathCmd};
            System.out.println("Command is: " + command);
            ProcessBuilder pb = new ProcessBuilder(command);
            Map<String, String> env = pb.environment();
            env.put("mypath", ".;lib/gatui.jar;lib/gat.jar;lib/swing-layout-1.0.jar;lib/smtp.jar;lib/AbsoluteLayout.jar;lib/axis.jar;lib/commons-discovery-0.2.jar;lib/jaxm-runtime.jar;lib/jaxrpc.jar;lib/saaj-api.jar;lib/saaj-impl.jar;lib/activation.jar;lib/JSAP-2.1.jar;lib/SNMP4J.jar;lib/mailapi.jar;lib/jtapi.jar;lib/remotehands.jar;lib/conftransfer.jar;lib/jtapi.jar;;lib/devicedashboard.jar;lib/pcdb.jar;lib/lic.jar;lib/poi-3.8-20120326.jar");
            pb.directory(new File(curDir));
            Process p = pb.start();
            //Runtime runtime = Runtime.getRuntime();
            //Process p = runtime.exec(command, envArr, new File(curDir));
            InputStream is = p.getInputStream();
            InputStreamReader isr = new InputStreamReader(is);
            BufferedReader br = new BufferedReader(isr);
            String line;

            while ((line = br.readLine()) != null) {
                System.out.println(line);
            }
            p.waitFor();
            System.out.println("Done with: " + queryFile);
        } catch (IOException ex) {
            ex.printStackTrace();
        } catch (InterruptedException ex) {
            ex.printStackTrace();
        } finally {
            return false;
        }

上面的代码导致 IOException,其次,我也没有从流中得到任何输出。这是文件夹结构。

MainDir 
|
--lib
--src
   |
   --com.query.Exec
      |
      javafile.java

【问题讨论】:

    标签: java windows command-line


    【解决方案1】:

    我不知道你想用你的代码做什么,但要执行命令行你可以简单地使用
    Runtime.getRuntime().exec(command)
    其中command 是一个字符串,表示您要运行的命令。

    【讨论】:

    • 有多个命令。我需要设置所需 jar 的路径,然后调用 jar 是我想要实现的目标。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多