2016-02-02 37 views
1

我在Eclipse中使用Java進行文件操作,如編輯,搜索等。例如,我有兩個文本文件。一個是「sales.txt」,另一個是「employees.txt」。用戶應該輸入開始日期和結束日期作爲參數。然後該程序找到匹配的日期以及所有的日期。它從那裏計算出發現銷售日期的員工的佣金。從終端運行Java:找不到文本文件

問題出在這裏: 我使用的是Kali Linux(Debian),我必須創建一個shell腳本來編譯和運行帶有命令行參數的java程序。

例如:shell腳本被稱爲「Runner」。 所以我輸入:./Runner [開始日期] [結束日期]

一旦這樣做,它編譯罰款沒有警告。但是當程序執行時,終端顯示如下:cannot find employees or sales .txt 但是,當我在Eclipse中使用Run Configurations並編輯[開始日期] [結束日期]的參數面板時,程序運行良好。

Here is what the Projects panel looks like in eclipse:

編輯 - 下面是測試外殼腳本:

#! /bin/bash 

javac /$HOME/workspace/Java\ Projects/Database_2/src/src/*.java 
cd /$HOME/workspace/Java\ Projects/Database_2/src 
java src.Runner $1 $2 

編輯2 - 終端輸出> ./testRunner 2015年1月1日2015年1月7日

java.io.FileNotFoundException: employees.txt (No such file or directory) 
    at java.io.FileInputStream.open0(Native Method) 
    at java.io.FileInputStream.open(FileInputStream.java:195) 
    at java.io.FileInputStream.<init>(FileInputStream.java:138) 
    at java.util.Scanner.<init>(Scanner.java:611) 
    at src.CommissionModifier.parseEmployees(CommissionModifier.java:101) 
    at src.CommissionModifier.process(CommissionModifier.java:15) 
    at src.Runner.handleArguments(Runner.java:10) 
    at src.Runner.main(Runner.java:6) 
java.io.FileNotFoundException: sales.txt (No such file or directory) 
    at java.io.FileInputStream.open0(Native Method) 
    at java.io.FileInputStream.open(FileInputStream.java:195) 
    at java.io.FileInputStream.<init>(FileInputStream.java:138) 
    at java.util.Scanner.<init>(Scanner.java:611) 
    at src.CommissionModifier.parseSales(CommissionModifier.java:135) 
    at src.CommissionModifier.process(CommissionModifier.java:16) 
    at src.Runner.handleArguments(Runner.java:10) 
    at src.Runner.main(Runner.java:6) 
+0

考慮添加stacktrace的文本,而不是提供屏幕截圖。 – jheimbouch

+0

我們不知道你的腳本文件裏有什麼文件或文件與你運行它的地方進行比較...... –

+0

你是否在通過eclipse執行時從同一目錄運行java文件? –

回答

0

在eclipse中,工作文件夾是項目文件夾。看看你的腳本,那可能是/ $ HOME/workspace/Java \ Projects/Database_2。我敢打賭你的文件也在這個文件夾中,這就是爲什麼它在eclipse中工作的原因。

從腳本運行時,您將將文件夾更改爲/ $ HOME/workspace/Java \ Projects/Database_2/src,該文件可能沒有您的文件。

如果這些假設是真實的,那麼您的腳本需要cd到/ $ HOME/workspace/Java \ Projects/Database_2中。 Java可能無法從那裏找到你的類,所以你需要將類路徑添加到命令行參數中。

#! /bin/bash 

javac /$HOME/workspace/Java\ Projects/Database_2/src/src/*.java 
cd /$HOME/workspace/Java\ Projects/Database_2 
java -cp src src.Runner $1 $2 
+0

謝謝你做到了! –

+0

很酷。如果你不想再對你的問題提供任何幫助,你應該將答案標記爲接受。 –