0
我需要使用makefile編譯.java文件。我做了一個非常簡單的一個,但是當我運行生成的.class文件我得到以下錯誤在Linux中使用Java Makefile時沒有此類文件錯誤
Exception in thread "main" java.io.IOException: No such file or directory
at java.io.UnixFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(File.java:947)
at BadThread.<init>(Base.java:20)
at Base.main(Base.java:13)
我知道Makefile文件不能運行Java代碼的最佳途徑,但是這是一個必要條件。
這是我的makefile:
JFLAGS = -g
JC = javac
.SUFFIXES: .java .class
.java.class:
$(JC) $(JFLAGS) $*.java
CLASSES = \
Base.java
default: classes
classes: $(CLASSES:.java=.class)
clean:
$(RM) *.class
我試圖編譯的文件是這一個:
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
public class Base {
public static void main(String[] args) throws IOException {
for(int i=0;i<10;i++){
new Thread(new BadThread("./output/"+i+".text")).start();
}
}
}
class BadThread implements Runnable{
public BadThread(String filePath) throws IOException{
File f=new File(filePath);
if(f.exists()==false){f.createNewFile();}
dos=new DataOutputStream(new FileOutputStream(filePath));
}
private DataOutputStream dos;
double val=0.0D;
@Override
public void run() {
try{
for(int i=0;i<1024000;i++){
val=Math.random();
for(int j=0;j<8;j++){
dos.writeDouble(val+j);
}
}
dos.flush();
dos.close();
}catch(Exception e){return;}
}
}
那麼,你試圖創建哪個文件?這看起來與makefile沒有任何關係,但卻是Java程序中的一個錯誤。 – chrylis
我編輯了原文 –