0
public void actionPerformed(ActionEvent e)
    {
        String sout;
        try
          {         
            if(e.getSource()==compile)
            {
            sout=input.getText();
            Runtime rt=Runtime.getRuntime();                            
Process p=rt.exec("javac sout.java",null,new     File("C:/c/compile assign"));
            }           

クラス名を String sout (TextField 経由) に保存してから、sout.java (つまり、classname.java) を呼び出していますが、クラス ファイルを作成できませんでした。

            if(e.getSource()==run)
            {
InputStream is = Runtime.getRuntime().exec("java input.getText()",null,new             File("C:/c/compile assign")).getInputStream();
            //BufferedInputStream b=new BufferedInputStream(is);
         BufferedReader br= new BufferedReader(new InputStreamReader(is));      
            output.setText(br.readLine()+"hello");
            }
        }
        catch(Exception e1)
        {
        e1.printStackTrace();
        }
    }
4

1 に答える 1

1

クラス名をテキストフィールドsoutで提供されている文字列に保持している場合input、出力コンパイルコマンドは次のようになります。

Process p=rt.exec("javac " + sout + ".java", null, new File("C:/c/compile assign"));

また、実行コマンドは次のようにする必要があります。

Runtime.getRuntime().exec("java " + input.getText(), null, new File("C:/c/compile assign")).getInputStream();

コマンドを起動する前に、このフィールドの生の値 (例: クラスが存在する) を使用する前に、さらに検証を追加することをお勧めしますjava

于 2012-09-15T12:00:48.630 に答える