我創建了一個類來手動編譯我的.java文件到.class文件中。該程序成功運行。但是,.class文件與我的.java文件在同一個目錄中創建。但是,我希望它們在某個自定義目錄中創建。我能做什麼?java -setting手動編譯的類文件的位置
下面是我用來編譯.java文件的代碼。 : -
// * ** * ** * ** * ** * ** * ** * ** * ** * ** //
//這將編譯我的.java文件到.class文件,並將其存儲在同一位置
public void compileFile(String pageName,String packageName) {
String fileToCompile = packageName + pageName +".java";
System.out.println("String to compile :- " + fileToCompile);
System.setProperty("java.home", "C:\\install\\Java\\jdk1.7");
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
int compilationResult = compiler.run(null, null, null, fileToCompile);
if(compilationResult == 0){
System.out.println("Compilation is successful");
}else{
System.out.println("Compilation Failed");
// this.deleteFiles(fileToCompile);
}
}
//此方法嘗試將生成的.class文件移動(通過複製和粘貼)到自定義目錄中。 但它給出了一些錯誤,如錯誤的類文件:mycustomdir \ MarketWatchBean.class 類文件包含錯誤的類:mycustomdir.MarketWatchBean 請刪除或確保它出現在類路徑的正確的子目錄中。
public void moveFiles(String sourcePath, String destPath){
InputStream inStream = null;
OutputStream outStream = null;
try{
File afile =new File(sourcePath);
File bfile =new File(destPath);
inStream = new FileInputStream(afile);
outStream = new FileOutputStream(bfile);
byte[] buffer = new byte[1024];
int length;
//copy the file content in bytes
while ((length = inStream.read(buffer)) > 0){
outStream.write(buffer, 0, length);
}
inStream.close();
outStream.close();
//delete the original file
// afile.delete();
System.out.println("File is copied successfully!");
}catch(IOException e){
// this.deleteFiles(sourcePath);
// this.deleteFiles(destPath);
e.printStackTrace();
}
}
謝謝章魚......它的工作:) – star95
不客氣。請接受答案,讓其他人知道它已被回答並運作。 – Keerthivasan
如何接受答案? – star95