以下所有CMD,Java文件都是放在一个文件夹
DOS运行Java文件:
这是DOS批命令:其中两个冒号是注释(自用参数在文件中无意义).
下面是CMD文件
@echo off
set dir="%~dp0"
javac TestJava.java
java TestJava %dir%
pause
::echo param1 >in.txt
::echo param2 >>in.txt
::extern.exe <in.txt
::set str=test
::if %str%==test (
:: set str=another test
:: echo %str%
::)
::echo 当前盘符:%~d0
::echo 当前盘符和路径:%~dp0
::echo 当前盘符和路径的短文件名格式:%~sdp0
::echo 当前批处理全路径:%~f0
::echo 当前CMD默认目录:%cd%
下面是Java文件
public class TestJava{
public static void main(String args[]){
String ts = args[0];
ts=ts.replace("\"", "");//批处理中会出现"原因不明
System.out.println("通过Java输出DOS批命令函数: "+ts);
}
};
双击CMD文件即可得到以下结果:
Java运行DOS命令
没有母文件夹的情况下创建文件是mkdirs
Java文件
import java.io.IOException;
public class Test0901 {
public static void main(String[] args) throws IOException {
System.out.println("已经进入java文件!");
Runtime.getRuntime().exec("C:/Windows/System32/cmd.exe /c mkdirs D:\\ZCA\\liqiang\\Desktop\\java键的2"); // 通过cmd创建目录用两个反斜杠
Runtime.getRuntime().exec("cmd.exe /k ren D:\\ZCA\\zouchanddd zouchankkk");//命令是缩写也不要紧.
// /c和/k对自己电脑无效,有结果,eclipse下都看不到命令窗口.用DOS命令编译窗口有文字显示
}
}
在DOS命令下运行显示结果为:
DOS将Java的结果作为参数
Java文件
import java.io.IOException;
public class Test0901 {
public static void main(String[] args) throws IOException {
System.out.println(" CD/d D:/zca");
}
}
CMD文件
@echo off
javac *.java
java Test0901 >in.txt
<in.txt dir
pause
::echo param1 >in.txt
::echo param2 >>in.txt
::extern.exe <in.txt
::上面是读取参数代入最下面的程序,好像是读取两个参数到txt文本中,程序需要的时候一起输出,对于外行来说真是神来之笔.
双击CMD文件后,运行结果 (其实也可以将 dir命令放入Java文件中)