如何使用eclipse调用另一个java程序

如何使用eclipse调用另一个java程序,java,eclipse,Java,Eclipse,以下代码(执行时)提示用户输入要执行的任何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.o

以下代码(执行时)提示用户输入要执行的任何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是新手。需要帮助。

您是只输入类的名称,还是同时输入程序所在的目录?我认为它在eclipse中不起作用,因为您需要指定文件的位置。。。像C:\Users\Me\workspace\ProjectName\src\filename一样,您不能“执行”java类,因此发布的代码无法工作

相反,您需要执行“java”,并将类路径和类名作为参数传递给它,如下所示:

String s = br.readLine();

String[] cmd = {"java", "-cp", "/some/path/to/your/jar/file", s};

Process pro = Runtime.getRuntime().exec(cmd);

如果我使用命令提示符,我将输入'java classname'。但这在eclipse中不起作用。在eclipse中,请尝试键入文件的位置,看看它是否有效。我需要在“/some/path/to/your/jar/file”中添加哪个路径。我是否应该添加我调用的java类的类路径“-cp”。我想很清楚“/some/path/to/your/jar/file”是包含要运行的类的jar文件的路径,即类路径。如果您有依赖项(jar需要运行的其他jar),请将所有jar放在一个目录中,并将类路径设置为该目录。我测试了这段代码,它对我有效,例如假设“s”是“com.mycompany.MyClass”,很抱歉再次问你。我真的对路径感到困惑,我尝试用这种方式
String[]cmd={“java”,“C:/Users/BHARAT/workspace/Testing”,s}在这行C:/。。。是所有类所在的项目的路径。这是正确的吗?不。只需准确地复制我的代码,但要有JAR的路径!让我们这样说:找到在windows中工作的命令,例如,让我们假设这个命令工作:
java-cp C:/Users/BHARAT/workspace/Testing com.BHARAT.util.TestClass
,那么您的代码将是
String[]cmd={“java”,“-cp”,“C:/Users/BHARAT/workspace/Testing”,s}
,其中
s=“com.bharat.util.TestClass”。命令的每个“单词”都是
cmd
数组的一个元素。非常感谢。它起作用了。我每次都抄错了路。