在运行时运行编译的java代码
发布时间:2020-05-24 12:39:53 所属栏目:Java 来源:互联网
导读:我想运行之前编译的代码.我编译无论如何编译并不重要,但运行代码是问题. 我的code.java public class code{ public static void main(String[] args) { System.out.println(Hello, World); }} 然后我编译了这段代码并生成了code.class(在D://目录中).
|
我想运行之前编译的代码.我编译无论如何编译并不重要,但运行代码是问题. 我的code.java public class code{
public static void main(String[] args) {
System.out.println("Hello,World");
}
}
然后我编译了这段代码并生成了code.class(在D://目录中).现在我想运行这个编译文件.我的代码是: import java.io.IOException;
import java.io.InputStream;
public class compiler {
public static void main(String[] args) {
final String dosCommand = "cmd /c java code";
final String location = "D:";
try {
final Process process = Runtime.getRuntime().exec(
dosCommand + " " + location);
final InputStream in = process.getInputStream();
int ch;
while((ch = in.read()) != -1) {
System.out.print((char)ch);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
这里没有错误但是这段代码没有做任何事情.没有cmd打开,没有.我哪里错了?我该怎么办? 解决方法当前你的cmd命令是错误的.cmd /c java code D:/ /*this is not correct cmd command*/ 它应该是 cmd /c java -cp D:/ code 当您在另一个文件夹中运行.class文件但不在当前文件夹中时,请使用-cp指定类路径 实际上没有错误nope.但是你没有捕获它们.捕获错误你可以使用getErrorStream() 示例代码 public class compiler {
public static void main(String[] args) {
final String dosCommand = "cmd /c java -cp ";
final String classname = "code";
final String location = "D:";
try {
final Process process = Runtime.getRuntime().exec(dosCommand + location + " " + classname);
final InputStream in = process.getInputStream();
final InputStream in2 = process.getErrorStream();
int ch,ch2;
while ((ch = in.read()) != -1) {
System.out.print((char) ch);
}
while ((ch2 = in2.read()) != -1) {
System.out.print((char) ch2); // read error here
}
} catch (IOException e) {
e.printStackTrace();
}
}
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
