我的问题是我有一个.class文件(编译后的第一个servlet程序),它使用netbeans(apache tomcat作为服务器)编译,并有另一个.java文件(第二个servlet程序)。我删除了我的第一个servlet程序的.java文件并仅保留其.class文件。现在,我想要执行第一个servlet程序的.class文件,并将一些参数传递给我的.class文件(之后的第一个servlet程序)编译)。
我在互联网上搜索过很多东西。它显示使用反射或使用这样的东西:
Process theProcess = re.exec("java -cp C: /java/abc.class");
但我无法解决这个问题。
答案 0 :(得分:0)
为了运行另一个程序,请尝试:
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读取其输出。