【发布时间】:2017-11-28 17:02:50
【问题描述】:
我正在尝试在 java 中读取文件,当我通过 IDE 运行程序时它工作正常,但是当我执行 jar 时它试图打开它时,它说该文件不存在。这是失败的代码。
public class Main {
public static void main(String[] args) {
try {
App app = new App("files/" + "jsonFile.json", printWriter);
app.runApp();
} catch (Exception e) {
logger.error("error", e);
}
}
}
public class App {
public void runApp(){
File fileDescription = new File("./" + pathDescription);
StringBuilder allDescription = new StringBuilder();
try {
FileReader fr = new FileReader(fileDescription);
BufferedReader br = new BufferedReader(fr);
String line = "";
while ((line = br.readLine()) != null) {
allDescription.append(line);
}
JSONDescription = allDescription.toString();
fr.close();
br.close();
} catch (IOException e) {
logger.error("Error reading file",e);
}
}
}
我知道该文件存在于 jar 中,因为我使用 jarzilla 手动查看了 jar。不知道会发生什么。
【问题讨论】:
-
你的代码块不是你直接在 App 里面写的业务逻辑,里面没有任何方法,变量 pathDescription 取什么值。
-
这不可能是代码。 new app("files/" + "jsonFile.json", printWriter) 将无法编译,因为 app 以小写字母开头 + 您的类没有采用 String 和 printWriter 的构造函数。由于您没有定义任何 printWriter,因此 main 也不会编译。
-
这不是 C,你的 main 方法必须在一个类中。
标签: java