我一直在搜索堆栈溢出并尝试了多个答案,关于我的问题是,如果我从我的 IDE (eclipse) 中尝试该程序,那么它工作正常。但是当我创建 JAR 文件并尝试从那里运行它时,它根本不起作用。
到目前为止,我认为这与我如何定义我的文件有关,我觉得很奇怪,因为我把它作为类似问题的解决方案。
public class HighscoreXML {
private String path = new File(Menu.class.getProtectionDomain().getCodeSource().getLocation().getPath()).getParentFile()+"/Highscore.xml";
private File file = new File(path);
public ArrayList<Player> readXML(){
ArrayList<Player> players = new ArrayList<>();
if (!file.exists()){
try {
createFile();
}catch (Exception ex) {
ex.printStackTrace();
}
}
else{
SAXBuilder builder = new SAXBuilder();
try{
Document readDoc = builder.build(file);
Element root = readDoc.getRootElement();
for(Element element : root.getChildren("Player")){
Player player = new Player("name", "0", "0");
player.setName(element.getChildText("Name"));
player.setScore(element.getChildText("Score"));
player.setTime(element.getChildText("Time"));
players.add(player);
}
}catch(Exception e){
e.printStackTrace();
}
}
return players;
}
}