【发布时间】:2016-02-02 22:37:22
【问题描述】:
我在 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)
【问题讨论】:
-
考虑添加堆栈跟踪的文本而不是提供屏幕截图。
-
我们不知道您的脚本文件中有什么,也不知道这些文件与您运行它的位置相比...
-
你是从与通过eclipse执行时相同的目录运行java文件吗?
-
@JamesBuck 是的。我刚刚发布了我的测试 shell 脚本
-
@jheimbouch 需要我使用 strace,对吗?