以下代码(执行时)会提示用户输入要执行的任何java类名称。
import java.io.*;
public class exec {
public static void main(String argv[]) {
try {
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
System.out.println("Enter the java class name");
String s=br.readLine();
Process pro=Runtime.getRuntime().exec(s);
BufferedReader in=new BufferedReader(new InputStreamReader(pro.getInputStream()));
String line=null;
while((line=in.readLine())!=null) {
System.out.println(line);
}
in.close();
} catch(Exception err) {
err.printStackTrace();
}
}
如果我使用命令提示符并且我能够执行另一个java程序,则此代码可以正常工作。但是我无法使用eclipse做同样的事情。输入java类名后,输出或错误就出现了。
我是eclipse的新手。需要帮助。
答案 0 :(得分:3)
您无法“执行”java类,因此您发布的代码无效。
相反,你需要执行“java”并将类路径和类名作为参数传递给它,如下所示:
String s = br.readLine();
String[] cmd = {"java", "-cp", "/some/path/to/your/jar/file", s};
Process pro = Runtime.getRuntime().exec(cmd);
答案 1 :(得分:0)
您只需输入班级名称,还是也输入程序所在的目录?我认为它在eclipse中不起作用,因为你需要指定文件的位置......比如C:\ Users \ Me \ workspace \ ProjectName \ src \ filename