![](/img/trans.png)
[英]applet execution fail to execute batch file packaged inside executable jar
[英]Fail to read file and parse with gson when the program packaged as jar
所以我正在使用json將一些數據存儲在txt文件中。 我用Gson來處理json。 該程序在日食中運行良好。 但是,當我將其包裝到罐子中時,出現了問題。
我首先做的(日食)是:
String gsonStr = gson.toJson(masterShips);
BufferedWriter writer = null;
try {
writer = new BufferedWriter(new FileWriter("D:\\master_ship.txt"));
writer.write(gsonStr);
} catch (IOException e) {
System.err.println(e);
} finally {
if (writer != null) {
try {
writer.close();
} catch (IOException e) {
System.err.println(e);
}
}
}
然后,我將.txt文件復制到eclipse並使用以下代碼讀取:
Scanner in = new Scanner(new FileReader("master_ship.txt"));
String str = in.nextLine();
Log.toDebug(str);
in.close();
JsonParser parser = new JsonParser();
JsonElement je = parser.parse(str);
JsonArray ja = je.getAsJsonArray();
for (int i=0; i<ja.size(); ++i) {
...
}
但是,當我將.jar文件和.txt文件放在同一文件夾中並執行時,會出現錯誤。 我認為定義路徑的方式可能存在問題。 最后我轉向絕對路徑:
Scanner in = new Scanner(new FileReader("D:\\master_ship.txt"));
不過,它在eclipse中效果很好,但是在使用jar時卻不能。 然后用命令行打開罐子:
Exception in thread "main" com.google.gson.JsonSyntaxException: com.google.gson.
stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malform
ed JSON at line 1 column 4
at com.google.gson.JsonParser.parse(JsonParser.java:65)
at com.google.gson.JsonParser.parse(JsonParser.java:45)
at kan.util.Master.loadMasterShip(Master.java:44)
at kan.util.Master.load(Master.java:27)
at kan.Main.main(Main.java:22)
Caused by: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLeni
ent(true) to accept malformed JSON at line 1 column 4
at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1505)
at com.google.gson.stream.JsonReader.checkLenient(JsonReader.java:1386)
at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:531)
at com.google.gson.stream.JsonReader.peek(JsonReader.java:414)
at com.google.gson.JsonParser.parse(JsonParser.java:60)
... 4 more
我可以確定文件讀取成功,因為jar可以完全輸出從文件讀取的字符串。 但是,為什么Gson在日食方面做得很好卻要在日食之外失敗。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.