0

这是我从另一个 java 项目调用 java 项目的代码

package pkgtry;
import java.io.*;

public class Try 
{
  private static void runProcess(String command) throws Exception 
  {
    Process pro = Runtime.getRuntime().exec(command);
    pro.waitFor();
    InputStream inputStream = pro.getInputStream();
    int b = -1;
    while ( (b =  inputStream.read()) != -1 ) 
    {
        System.out.write(b);
    }
  }

  public static void main(String[] args) 
  {
     int x=10;
     try 
     {
            runProcess("javac -d . C:\\Users\\owner\\Documents\\NetBeansProjects\\input\\src\\input\\Input.java");
            runProcess("java input.Input");
     }
     catch (Exception e) 
     {
        e.printStackTrace();
     }
  }
}

这段代码运行良好。我想要的是将变量说'x'从 Try.java 传递给 Input.java

我想知道在 Try.java 中要进行哪些更改以发送参数并在 Input.java 中进行以接收参数。提前致谢

4

2 回答 2

1

您需要将其附加到main 方法中,command然后Input.java将此值存储在args参数中。

于 2013-05-08T17:52:53.840 回答
0

你想传递给被调用程序的所有东西都被添加到它的命令行中,就像这样

runProcess("java input.Input All Parameters You Want To Pass");

在 Input.java 中,您可以通过读取来检索这些参数String[] args,如下所示:

public class Input {
    public static void main (String[] args) {
        for (String s: args) {
            System.out.println(s);
        }
    }
}

会产生

All
Parameters  
You  
Want  
To  
Pass

但是你应该知道,这是让一段Java代码调用另一段Java代码的一种相当粗暴的方式,你可以将包含Input的项目生成的jar添加到Try项目中,并直接实例化Input类。通过命令行调用既慢又麻烦,严重限制了两个类之间的通信(一个方向的命令行参数,另一个方向的整数返回值。

于 2013-05-08T17:55:55.477 回答