繁体   English   中英

如何从Java中的另一个类调用Main方法作为进程

[英]How to call Main Method from another Class in Java as a Process

我有这两个类:

public class Sumador {
    
    public static void main(String[] args) {
        int primerNumero = Integer.parseInt(args[0]);
        int segundoNumero = Integer.parseInt(args[1]);
        int suma = 0;
        
        for(int k=primerNumero; k < segundoNumero; k++) {
            suma += k;
        }
        System.out.println("Resultado: " + suma);
    }
}
public class Lanzador {
    
    public void lanzarSumador() {
        Process p;
        InputStream is;
        BufferedReader br = null;
        
        try {
            p = new ProcessBuilder("java", "Sumador.java", "10", "20").start();
            is = p.getInputStream();
            br = new BufferedReader(new InputStreamReader(p.getInputStream()));
            while(br.ready()) {
                System.out.println(br.readLine());
            }
            
            
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
    public static void main(String[] args) {
        Lanzador l = new Lanzador();
        l.lanzarSumador();
        
    }
}

我想要做的是运行第二个班级以将第一个班级作为第二个班级的进程,但不幸的是,对我来说,它不起作用,我不明白为什么。

每一个回复都会非常感谢。 感谢您的时间。

编辑:您可以从类 Lanzador 中的 main 方法调用类 Sumador 的 main 方法,如下所示:

public static void main(String[] args) {
    Lanzador l = new Lanzador();
    l.lanzarSumador();
    Sumador.main(null);
}

您的程序执行中只能有一个主类。 您可以做的是在公共类中更改 Sumador 类中的 main 方法,并在类 Lanzador 的 main 方法中调用它

public class Sumador {

public static void sumadorMethod() {
    int primerNumero = Integer.parseInt(args[0]);
    int segundoNumero = Integer.parseInt(args[1]);
    int suma = 0;
    
    for(int k=primerNumero; k < segundoNumero; k++) {
        suma += k;
    }
    System.out.println("Resultado: " + suma);
}   

}

然后您在类 Lanzador 中的主要方法如下所示:

public static void main(String[] args) {
    Lanzador l = new Lanzador();
    l.lanzarSumador();
    Sumador.sumadorMethod();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM