3

Java (Swing) で GUI を構築しており、そこから Java コードを実行する必要があります。Java で HelloWorld を印刷するような単純なコードをテストする場合は問題ありません。

フォーラムの質問を見て、そのコンパイル タスクを実行するにはオペレーティング システム (Windows7 を使用しています) を起動する必要があることを知りました。

ありがとうございました。

PS: Runtime.getRuntime().exec() コマンドを試しましたが、成功しませんでした。

4

4 に答える 4

2

IDE を使用している場合、これらのコマンドを呼び出す必要はありません。

コンパイル:

  • javac HelloWorldSwing.java

走る:

  • java HelloWorldSwing

....

Runtime.getRuntime().exec() を使用する場合。以下は、Runtime.getRuntime().exec(). の使用例です。

import java.io.*;  
public class TestExec {  
    public static void main(String[] args) {  
        try {  
            Process p = Runtime.getRuntime().exec("cmd /C dir");  
            BufferedReader in = new BufferedReader(  
                                new InputStreamReader(p.getInputStream()));  
            String line = null;  
            while ((line = in.readLine()) != null) {  
                System.out.println(line);  
            }  
        } catch (IOException e) {  
            e.printStackTrace();  
        }  
    }  
}  

「これは dir コマンドを実行し、その出力をキャプチャして、プログラムの stdout にコピーするだけです。あまりエキサイティングではありませんが、Runtime.exec() を使用するための基本的な部分を示しています。また、プロセスの出力とエラー ストリームを開くこともできます。」

Runtime.getRuntime().exec() でコマンドを送信できるので、上で書いた javac または java コマンドを使用できます。

于 2012-10-15T13:09:48.363 に答える
2

コンパイル コード部分のJava コンパイラ APIをチェックアウトすることをお勧めします。runtime.exec() は、アプリを起動するための正しいコマンドで動作するはずです。

于 2012-10-15T13:05:13.787 に答える
1

コンパイルには、Java コンパイラを含む JDK がインストールされている必要がありますjavac。Java ソースコードをコンパイルするために Runtime.getRuntime().exec() を使用して javac を呼び出し、それをロードすることができます。

または、Java コンパイラ API を使用することもできます。メインのコンパイラ API は、次の方法で取得できます。 javax.tools.ToolProvider.getSystemJavaCompiler();

この記事も参照してください: Java 6.0 Compiler API

于 2012-10-15T13:07:24.957 に答える
1

SSCCE Text Based Compiler (STBC)JavaCompilerで APIを使用する例があります。実行時のクラスパスでの取得に関連するページを必ずお読みください。tools.jar

STBC はオープン ソースです。

于 2012-10-15T14:46:15.367 に答える