如何在java中从另一个.java文件以编程方式运行.class文件

如何在java中从另一个.java文件以编程方式运行.class文件,java,Java,我的问题是,我有一个.class文件(编译后的第一个servlet程序),它是使用netbeans(apachetomcat作为服务器)编译的,还有一个.java文件(第二个servlet程序)。我删除了第一个servlet程序的.java文件,只保留了它的.class文件。现在,从第二个servlet程序开始,我想执行第一个servlet程序的.class文件,并将一些参数传递给我的.class文件(编译后的第一个servlet程序) 我在互联网上搜索了很多。它显示了使用反射或使用类似的东西:

我的问题是,我有一个.class文件(编译后的第一个servlet程序),它是使用netbeans(apachetomcat作为服务器)编译的,还有一个.java文件(第二个servlet程序)。我删除了第一个servlet程序的.java文件,只保留了它的.class文件。现在,从第二个servlet程序开始,我想执行第一个servlet程序的.class文件,并将一些参数传递给我的.class文件(编译后的第一个servlet程序)

我在互联网上搜索了很多。它显示了使用反射或使用类似的东西:

Process theProcess = re.exec("java -cp C: /java/abc.class");

但我无法解决此问题。

要运行其他程序,请尝试:

 ProcessBuilder builder = new ProcessBuilder("java", "SecondApplication"); //without .class suffix
 builder.directory(new File("C:\\Users\\etc")); //I don't know you're on linux or windows. Just go to where your "SecondApplication" is located.
 Process process = builder.start();

 OutputStream pIn = process.getOutputStream();
 InputStream pOut = process.getInputStream();

 BufferedReader reader = new BufferedReader(new InputStreamReader(pOut));
 BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(pIn));

现在,您已经具备了与第二个应用程序交互所需的所有功能。您可以使用writer写入其标准输入流,并使用reader读取其输出。

是否使用
class.forName(…)
help?您想做什么?java程序通常由许多java类组成,这些类在编译后将成为
.class
文件,并且它们相互交互。稍微研究一下类路径,你就能解决你的问题了。我只想从另一个java文件执行一个类文件,你说的执行是什么意思?它是另一个具有独立
main
方法的java程序吗?或者你想与之交互,比如从中调用一个方法?比如我们在cmd中使用java命令执行(运行),比如java classname