从终端运行Java:找不到文本文件

时间:2016-02-02 22:37:22

标签: java linux terminal

我在Eclipse中使用Java进行文件操作,如编辑,搜索等。例如,我有两个文本文件。一个是“sales.txt”,另一个是“employees.txt”。用户应该输入开始日期和结束日期作为参数。然后程序找到匹配的日期和之间的所有日期。从那里计算出发现销售日期的员工的佣金。

这是问题所在: 我正在使用Kali Linux(Debian),我必须创建一个shell脚本,用命令行参数编译和运行java程序。

例如:shell脚本称为“Runner”。 所以我键入:./ Runner [开始日期] [结束日期]

一旦这样做,它编译好没有警告。但是当程序执行时,终端显示:cannot find employees or sales .txt 但是当我在Eclipse中使用Run Configurations并编辑[start date] [end date]的Arguments面板时,程序运行正常。

Here is what the Projects panel looks like in eclipse:

编辑 - 这是测试shell脚本:

#! /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 01/01/2015 01/07/2015

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)

1 个答案:

答案 0 :(得分: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