2016-04-17 22 views
0

私の質問は、netbeans(サーバーとしてApache Tomcatを使用)をコンパイルし、もう1つの.javaを持つコンパイル後の.classファイル(コンパイル後最初のサーブレットプログラム)ファイル(2番目のサーブレットプログラム)。私の最初のサーブレットプログラムの.javaファイルを削除し、その.classファイルのみを保持します.2番目のサーブレットプログラムから、最初のサーブレットプログラムの.classファイルを実行し、いくつかのパラメータを.classファイル(最初のサーブレットプログラムコンパイル)。私はinternet.Itに多くのことをGoogleで検索している.classファイルを別の.javaファイルからJavaでプログラムで実行する方法

は使用反射を示したり、このようなものを使用します。

Process theProcess = re.exec("java -cp C: /java/abc.class"); 

をしかし、私はこの問題を解決することができません。別のプログラムの試みを実行するために

+0

'class.forName(...)'は役に立ちますか? – vikingsteve

+0

何をしたいですか? Javaプログラムは通常、コンパイル後に '.class'ファイルになり、相互に相互作用する多くのJavaクラスで構成されます。 **クラスパス**について少し勉強すれば、あなたの問題を解決することができます。 –

+0

別のJavaファイルから実行したいクラスファイルは1つだけです –

答えて

0

ProcessBuilder builder = new ProcessBuilder("java", "SecondApplication"); //without .class suffix 
builder.directory(new File("C:\\Users\\etc")); //I don't know you're on linux or windows. Just go to where your "SecondApplication" is located. 
Process process = builder.start(); 

OutputStream pIn = process.getOutputStream(); 
InputStream pOut = process.getInputStream(); 

BufferedReader reader = new BufferedReader(new InputStreamReader(pOut)); 
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(pIn)); 

今、あなたがあなたの第二のアプリケーションと対話するために必要なすべてを持っています。ライターを使用して標準入力ストリームに書き込み、リーダーを使用して出力を読み取ることができます。

関連する問題