私はスタックオーバーフローを検索して、答えを乗算しようとしました。私の問題は、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;
}
}