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();
     }
  }
}

このコードは完全に機能しています。私が欲しいのは、Try.javaからInput.javaに「x」という変数を渡すことです

パラメータを送信するためにTry.javaで、パラメータを受信するためにInput.javaですべての変更を行う必要があることを知りたいです。前もって感謝します

4

2 に答える 2

0

呼び出されたプログラムに渡したいものはすべて、次のようにコマンドラインに追加されます

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

String[] argsInput.java では、次のように を読み取ることで、これらのパラメーターを取得できます。

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 クラスを直接インスタンス化できます。コマンド ライン経由の呼び出しは遅くて面倒であり、2 つのクラス間の通信が大幅に制限されます (一方の方向はコマンド ライン パラメータ、他方の方向は整数の戻り値)。

于 2013-05-08T17:55:55.477 に答える