2016-08-28 16 views
0

使用方法を学んでいますProcessBuilder、私は2つのクラスを持っていますが、私はsocketspracticeというパッケージを作成しました。新しいプロセスを作成しようとしています。 'Program.java' .java 'と表示され、' test1 'が出力されます。ProcessBuilderは別のjavaファイルを同じパッケージと呼びます

コマンドプロンプトを使用すると、「java socketspractice.test1」「test1」が印刷されますが、Netbeansは使用しません。

問題は、同じ方法で動作するようにパスを設定するにはどうすればよいですか、それ以外は何が欠けていますか?私はこのためにNetbeansを使用しています。

Program.java

package socketspractice; 

import java.io.File; 
import java.io.IOException; 
import java.lang.ProcessBuilder; 

public class Program { 
public static void main(String[] args) throws IOException, InterruptedException { 

    ProcessBuilder builderExecute = new ProcessBuilder("java", "socketspractice.test1"); 

    builderExecute.start(); 

    } 
} 

test1.java パッケージsocketspractice。

public class test1 { 

public static void main(String[] args) { 
    // TODO code application logic here 
    System.out.println("test1"); 
    } 
} 
+0

はどのようにNetBeansの中で実行していますか? – Li357

+0

プログラムファイル/ rmb/runファイルを選択しました。 – DHLopez

答えて

0

ウルアプローチの主な問題は、あなたがたProcessBuilderを開始しているときには、別々のJVMプロセスとして実行されているので、ウルプロジェクトは、あなたのマシン上のどこにあるか、それは知っているdoesntのことです。

プロジェクトを作成してmavenプロジェクトとして作成し、コンパイル済みのjarをクラスパスに入れてプロセスビルダーを起動してください。

ProcessBuilderをPB =新しいProcessBuilderを( "javaの"、 " - クラスパス"、 ""、 "socketspractice.test1")

関連する問題