为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用Java打开命令提示符并插入命令?

如何使用Java打开命令提示符并插入命令?

MMMHUHU 2019-09-02 16:06:07
是否可以打开命令提示符(我猜其他系统的任何其他终端),并在新打开的窗口中执行命令?目前我拥有的是:Runtime rt = Runtime.getRuntime();rt.exec(new String[]{"cmd.exe","/c","start"});我尝试在“开始”之后添加下一个命令,我尝试运行另一个包含我的命令的rt.exec,但我找不到让它工作的方法。如果重要,我正在尝试运行类似于此的命令:java -flag -flag -cp terminal-based-program.jar编辑不幸的是我有一些奇怪的发现。我已经能够成功启动命令提示符并使用以下命令传递命令:rt.exec("cmd.exe /c start command");但是,它似乎只能使用一个命令。因为,如果我尝试使用像这样的命令分隔符“cmd.exe / c start command&command2”,则第二个命令将通过后台传递(如果我刚使用rt.exec(“command2”)的话;) 。现在问题是,我意识到我需要更改运行命令提示符的目录,因为如果我只使用jar文件的完整路径,则jar文件会错误地从命令提示符的活动目录中读取数据,而不是jar的目录,包含其资源。
查看完整描述

3 回答

?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

如果一次运行两个命令只是为了更改运行命令提示符的目录,则Runtime.exec方法会出现重载,允许您指定当前工作目录。喜欢,


Runtime rt = Runtime.getRuntime();

rt.exec("cmd.exe /c start command", null, new File(newDir));

这将在newDir的目录中打开命令提示符。我认为您的解决方案也可以正常工作,但这会使您的命令字符串或数组更加清晰。


将命令作为字符串并将命令作为String数组有一个重载。


但是,您可能会发现使用ProcessBuilder更加容易,因为ProcessBuilder有一个directory方法来设置当前的工作目录。


希望这可以帮助。




查看完整回答
反对 回复 2019-09-02
?
千万里不及你

TA贡献1784条经验 获得超9个赞

public static void main(String[] args) {

    try {

        String ss = null;

        Process p = Runtime.getRuntime().exec("cmd.exe /c start dir ");

        BufferedWriter writeer = new BufferedWriter(new OutputStreamWriter(p.getOutputStream()));

        writeer.write("dir");

        writeer.flush();

        BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));

        BufferedReader stdError = new BufferedReader(new InputStreamReader(p.getErrorStream()));

        System.out.println("Here is the standard output of the command:\n");

        while ((ss = stdInput.readLine()) != null) {

            System.out.println(ss);

        }

        System.out.println("Here is the standard error of the command (if any):\n");

        while ((ss = stdError.readLine()) != null) {

            System.out.println(ss);

        }


    } catch (IOException e) {

        System.out.println("FROM CATCH" + e.toString());

    }


}


查看完整回答
反对 回复 2019-09-02
  • 3 回答
  • 0 关注
  • 624 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号