我有这个程序,我必须从另一个程序运行。
public class Exercici8_p1 {
public static void main(String[] args) {
System.out.println("Introduzca texto -> ");
Scanner sc = new Scanner(System.in);
String texto = sc.nextLine();
String[] parts = texto.split("\\*");
System.out.println(parts[0]);
}
}
从这里我必须执行前一个
public class Exercici8_p1b {
public static void main(String[] args) {
try
{
Process process = Runtime.getRuntime().exec("java Exercici8_p1");
}
catch(Exception e)
{
System.err.println("Error on exec() method");
}
}
}
您的代码存在问题,因此您不知道它是否有效,因为您没有从正在运行的进程中打印任何内容,为此您可以进行以下修改:
现在第二个,使用
Runtime.getRuntime().exec()
有点过时了,要正确处理来自进程的输入和错误的输入和输出,必须使用线程同时工作,为此开发了一个特定的类来隐藏处理需要,类ProcessBuilder
。这是一个允许您运行第一个示例类的示例:
该方法
InheritIO
允许您将输入和输出流与程序的当前流相关联,这样您就可以像直接运行程序一样交互式地编写和读取程序。我不明白你的目标的目的是什么,但你可以做两件事:1.将其创建为一个类:
您可以将 Exercici8_p1 创建为一个类,并使用 main 中的内容创建一个普通方法,从另一个程序中,您可以创建一个 Exercici8_p1 类型的对象并调用该方法。
请记住,正在使用的编程类型是命令式编程,其中存在指令流,因此调用另一个程序足以运行一个更多方法,但如果您想创建另一个进程,只需启动一个更多线程。
https://jarroba.com/multitasking-and-threads-in-java-with-examples-thread-runnable/