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 回答