2013-09-05 33 views
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;} 
    } 

} 
+1

那麼,你試圖創建哪個文件?這看起來與makefile沒有任何關係,但卻是Java程序中的一個錯誤。 – chrylis

+0

我編輯了原文 –

回答

2

目錄output,在你試圖創建新的文件,不存在。

+0

噢,謝謝你!我可以發誓它是來自Makefile的東西。乾杯! –

相關問題