各位大哥 小弟请教一个问题
做动态编译的时候指定了String[] arguments = new String[]{"-d", System.getProperty("user.dir"), fileName};
但是到路径中无法找到编译的class文件 程序运行成功的我程序的大概意思是从外部读入一个java文件,然后拷贝一份到工程目录下,然后对其动态编译public synchronized String generatorInfo(String path) {
try {
File oldFile = new File(path);
String fileName = oldFile.getName();
String className = fileName.substring(0,fileName.indexOf("."));
File file = new File(System.getProperty("user.dir"), fileName);
bufferedReader = new BufferedReader(new FileReader(oldFile));
bufferedWriter = new BufferedWriter(new FileWriter(file));
String line = "";
while((line = bufferedReader.readLine())!= null) {
bufferedWriter.write(line + "\r\n");
}
String[] arguments = new String[]{"-d", "System.getProperty("user.dir"), fileName};
int result = com.sun.tools.javac.Main.compile(arguments);
System.out.println(result == 0 ? "SUCCESSED" : "FAILED");
// URL classpath = new URL("file:/" + System.getProperty("user.dir") + "/");
// //System.out.println(classpath);
//
// URLClassLoader classLoader = new URLClassLoader(new URL[] { classpath });
//
// // Load
// Class testClass = classLoader.loadClass(className); } catch (FileNotFoundException e) {
System.out.println("要分析的文件没有找到");
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
bufferedReader.close();
bufferedWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
做动态编译的时候指定了String[] arguments = new String[]{"-d", System.getProperty("user.dir"), fileName};
但是到路径中无法找到编译的class文件 程序运行成功的我程序的大概意思是从外部读入一个java文件,然后拷贝一份到工程目录下,然后对其动态编译public synchronized String generatorInfo(String path) {
try {
File oldFile = new File(path);
String fileName = oldFile.getName();
String className = fileName.substring(0,fileName.indexOf("."));
File file = new File(System.getProperty("user.dir"), fileName);
bufferedReader = new BufferedReader(new FileReader(oldFile));
bufferedWriter = new BufferedWriter(new FileWriter(file));
String line = "";
while((line = bufferedReader.readLine())!= null) {
bufferedWriter.write(line + "\r\n");
}
String[] arguments = new String[]{"-d", "System.getProperty("user.dir"), fileName};
int result = com.sun.tools.javac.Main.compile(arguments);
System.out.println(result == 0 ? "SUCCESSED" : "FAILED");
// URL classpath = new URL("file:/" + System.getProperty("user.dir") + "/");
// //System.out.println(classpath);
//
// URLClassLoader classLoader = new URLClassLoader(new URL[] { classpath });
//
// // Load
// Class testClass = classLoader.loadClass(className); } catch (FileNotFoundException e) {
System.out.println("要分析的文件没有找到");
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
bufferedReader.close();
bufferedWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货