用servlet来动态编译程序,
能生成一个Temp.java文件,可是编译那一步出错,
但是命令符下运却能成功编译
(命令符下用:javac -d D:\StarTeamWork\defaultroot\WEB-INF\classes D:\StarTeamWork\defaultroot\WEB-INF\classes\mytools\Temp.java)...
String path="D:\\StarTeamWork\\defaultroot\\WEB-INF\\classes\\mytools";//java/文件输出位置
String pathC="D:\\StarTeamWork\\defaultroot\\WEB-INF\\classes";//class文件输出位置
File f = new File(path,"Temp.java");
PrintWriter pw = new PrintWriter(new FileWriter(f));
pw.println(s);
pw.close();
//动态编译
com.sun.tools.javac.Main javac = new com.sun.tools.javac.Main();
String[] cpargs = new String[] {"-d", pathC,path+"\\Temp.java"};
int status = javac.compile(cpargs);
if(status!=0){
System.out.println("没有成功编译源文件!"+status);
//结果显示错误代码status为1
}
....
能生成一个Temp.java文件,可是编译那一步出错,
但是命令符下运却能成功编译
(命令符下用:javac -d D:\StarTeamWork\defaultroot\WEB-INF\classes D:\StarTeamWork\defaultroot\WEB-INF\classes\mytools\Temp.java)...
String path="D:\\StarTeamWork\\defaultroot\\WEB-INF\\classes\\mytools";//java/文件输出位置
String pathC="D:\\StarTeamWork\\defaultroot\\WEB-INF\\classes";//class文件输出位置
File f = new File(path,"Temp.java");
PrintWriter pw = new PrintWriter(new FileWriter(f));
pw.println(s);
pw.close();
//动态编译
com.sun.tools.javac.Main javac = new com.sun.tools.javac.Main();
String[] cpargs = new String[] {"-d", pathC,path+"\\Temp.java"};
int status = javac.compile(cpargs);
if(status!=0){
System.out.println("没有成功编译源文件!"+status);
//结果显示错误代码status为1
}
....
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货