这是我从另一个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中接收参数。提前致谢
答案 0 :(得分:1)
您需要将其附加到command
,并在主要方法的Input.java
中将此值存储在args
参数中。
答案 1 :(得分: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项目并实例化输入直接上课。通过命令行调用是缓慢而繁琐的,并严重限制了两个类之间的通信(一个方向的命令行参数,另一个方向的整数返回值。