2013-05-08 96 views
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(); 
    } 
    } 
} 

此代码是可以正常使用调用Java项目。我想要的是从Try.java传递一个变量'x'给Input.java

我想知道在Try.java中发送参数和在Input.java中进行的所有更改接收参数。在此先感谢

+0

Input.java位于哪里(在哪个包中? ?) – progrrammer 2013-05-08 17:52:54

回答

1

您需要将它附加到command和在Input.java主要方法中您将此值存储在args参数。你想传递给被调用程序

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类。通过命令行调用速度慢且繁琐,严重限制了两个类之间的通信(一个方向的命令行参数,另一个方向的整数返回值)

+0

谢谢亚尔....它的工作:) – gela 2013-05-08 18:05:07

相关问题