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();
}
}
答案 0 :(得分: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
命令之前,您可能希望在使用此字段中的原始值(例如,类存在)之前添加进一步的验证。