JS 和 JAVA 执行cmd命令

JS

建一个html文件,写个例子:

<html>
	<head>
		<meta charset = "UTF-8">
	</head>
	<body>
		Input Command :<input id = "cmdValue"/></br>
		<button onclick = "jsExecuteCmd();">Execute Command</button>
	</body>
	<script>
		/**
		*命令参数说明
		*cmd.exe /c 是执行完dir命令后关闭命令窗口。
		*cmd.exe /k 是执行完dir命令后不关闭命令窗口。
		*cmd.exe /c start 会打开一个新窗口后执行dir指令,原窗口会关闭。
		*cmd.exe /k start 会打开一个新窗口后执行dir指令,原窗口不会关闭。
		
		*注意:ActiveXObject是IE独有的对象,其他浏览器不兼容
		*/
		function jsExecuteCmd() {
			var cmdValue = document.getElementById("cmdValue").value;
			var cmd = new ActiveXObject("WScript.Shell");
			cmd.run("cmd.exe /k " + cmdValue);
			cmd = null;
		}
	</script>
</html>

执行效果:

(代码中用到了ActiveXObject对象,该对象是IE独有,其他浏览器不兼容)

 

java

package com.yoyo.yotils.yoyo.command;

import java.io.IOException;
import java.io.InputStream;

/**
 * 子逻辑
 * @author yoyo
 * @version $Id: JavaExecuteCmd.java, v 0.1 2019年11月18日 20:00 yoyo Exp $
 */
class JavaExecuteCmd {
    static void exeCmd(String command) {
        try {
            Process exec = Runtime.getRuntime().exec(command);
            InputStream in = exec.getInputStream();
            while (in.read() != -1) {
                System.out.println(in.read());
            }
            in.close();
            //exec.waitFor();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    /**
     * cmd命令模式
     */
    enum ExecuteType {
        CLOSE_CLIENT ("cmd /c ", "执行完dir命令后关闭命令窗口"),
        NOT_CLOSE_CLIENT("cmd /k ", "执行完dir命令后不关闭命令窗口"),
        CLOSE_CLIENT_NEW("cmd /c start ", "会打开一个新窗口后执行dir指令,原窗口会关闭"),
        NOT_CLOSE_CLIENT_NEW("cmd /k start ", "会打开一个新窗口后执行dir指令,原窗口不会关闭");

        /**
         * 命令模式
         */
        private String command;
        /**
         * 命令模式解释
         */
        private String desc;

        ExecuteType(String command, String desc) {
            this.command = command;
            this.desc = desc;
        }

        /**
         * Getter method for property <tt>command</tt>.
         *
         * @return property value of command
         */
        public String getCommand() {
            return command;
        }

        /**
         * Setter method for property <tt>command</tt>.
         *
         * @param command value to be assigned to property command
         */
        public void setCommand(String command) {
            this.command = command;
        }

        /**
         * Getter method for property <tt>desc</tt>.
         *
         * @return property value of desc
         */
        public String getDesc() {
            return desc;
        }

        /**
         * Setter method for property <tt>desc</tt>.
         *
         * @param desc value to be assigned to property desc
         */
        public void setDesc(String desc) {
            this.desc = desc;
        }}
    public static void main(String[] args) {
        String cmd1 = "dir";
        String cmd2 = "mvn package -Dmaven.skip.test=true";
        String cmd3 = "java -version";
        exeCmd(ExecuteType.CLOSE_CLIENT_NEW.getCommand() + cmd2);
    }
}

执行效果:

(执行打jar包测试,失败的原因是因为路径不对,把该文件放到项目根目录下执行即可成功,此处只验证cmd是否执行)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值