java调用CMD

allysniper 2010-03-17 01:06:17
我有一个L.java在D盘上的NT文件夹下,我如何在任意一个位置的JAVA程序里调用CMD,
使其编译并执行L.java文件?

public class C
{
public static void main(String[] args) throws Exception
{
Runtime.getRuntime().exec("????");
}
}

...全文
168 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
柔软的海带精 2010-03-18
  • 打赏
  • 举报
回复
javax.tools
Interface JavaCompiler

如果楼主想实现动态编译,可以尝试这个接口。
eimhee 2010-03-18
  • 打赏
  • 举报
回复
学习!!!!!!!!!!!!
柔软的海带精 2010-03-18
  • 打赏
  • 举报
回复
难道楼主不知道Java API里面有编译API?

Javac本身都是用Java写的,哥!!!
allysniper 2010-03-17
  • 打赏
  • 举报
回复
7楼的哥们,可以编译,但无法实现执行啊!你说同理,但我就是执行不了..
aSysBang 2010-03-17
  • 打赏
  • 举报
回复
生成个批处理文件 然后java run 这个bat文件
zuoguodang 2010-03-17
  • 打赏
  • 举报
回复
你需要使用cd切换到要执行的项目,然后再调用java A
kaylg 2010-03-17
  • 打赏
  • 举报
回复
学习学习
lgh1117 2010-03-17
  • 打赏
  • 举报
回复
Process p = Runtime.getRuntime().exec("cmd /c netstat -an");
InputStream is = p.getInputStream()
neunaruto 2010-03-17
  • 打赏
  • 举报
回复
下面的代码能实现编译,根据java的安装目录修改一下javac.exe的路径,运行L.class的代码同理:
String cmd[]={"C:\\Program Files\\Java\\jdk1.6.0_10\\bin\\javac.exe","D:\\NT\\L.java"};
Process p = Runtime.getRuntime().exec(cmd);
xiesisi3 2010-03-17
  • 打赏
  • 举报
回复
貌似用字符串组也会报错,可以先直接执行
Runtime.getRuntime().exec("javac D:/NT/L.java");试下,
我再看看为什么用String[]会出异常
xiesisi3 2010-03-17
  • 打赏
  • 举报
回复
因为它找不到javac这个命令
额,不好意思,我写错了,应该是
javac D:/NT/L.java和 java D:/NT/L
allysniper 2010-03-17
  • 打赏
  • 举报
回复
java.io.IOException: Cannot run program "D:/NT/javac L.java": CreateProcess erro
r=2, ??????????????????
at java.lang.ProcessBuilder.start(ProcessBuilder.java:459)
at java.lang.Runtime.exec(Runtime.java:593)
at java.lang.Runtime.exec(Runtime.java:466)
at C.main(C.java:11)
Caused by: java.io.IOException: CreateProcess error=2, ??????????????????
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(ProcessImpl.java:81)
at java.lang.ProcessImpl.start(ProcessImpl.java:30)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:452)
... 3 more
xiesisi3 2010-03-17
  • 打赏
  • 举报
回复
第一、你先得确认你在该目录下,直接执行javac L.java有反映,你才能拿到程序中来执行
第二、你报错应该把报的错贴出来
allysniper 2010-03-17
  • 打赏
  • 举报
回复
楼上的方法不行,我试过了,报错
xiesisi3 2010-03-17
  • 打赏
  • 举报
回复
String strs[] = {"D:/NT/javac L.java", "D:/NT/java L"};
try {
Runtime.getRuntime().exec(strs);
} catch (IOException e) {
e.printStackTrace();
}

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧