요즘 많이 물어 봤는데 모든 게시물은 동일한 문제이지만 다른 단계와 다른 가능한 답변이 있습니다 (특정 문제가 이전과 다르기 때문에 하나,하지만 밀접하게 관련). 그래서 내 질문을 반복하는 것처럼 보이면 미안해. 사실, 나는 아닙니다. 나는 Google과 여기에서 검색을 해왔지만 아무도 내 문제를 해결하지 못하는 것 같아요.xar 파일을 만들고 jar 파일 외부에서 읽음
글쎄, 내 파일 계층 구조는 다음과 같습니다
+ MyGame
+ build.xml
+ src
+ ThisIsWhereEclipsePutsTheXMLFile
+ build
+ manyFoldersWithClassFiles
+ aSpecialFolderWhereTheEntryPointIs
+ ThisIsWhereIWantMyXMLfileToBe.xml
+ game.jar
내 문제는 기본적으로이 : 내 프로그램이이 파일에 상태의 저장 한 후 해당 파일을 읽을 예정이다. 이 파일은 같은 폴더에 .jar 파일 밖에 존재해야합니다 (단 하나만 있습니다). 파일이 존재할 수도 있고 존재하지 않을 수도 있습니다. 파일이 있으면 덮어 씁니다.
이전 질문에서 나는 how to read an xml file that's in the same directory에 대해 물었습니다. 내가 이클립스에서 사용할 때 대답은 실제로 내 문제를 해결했다.
하지만 내 전체 프로그램으로 .jar 파일을 만들어야하고, 필요할 때마다 내 xml 파일을 크라우 징 (crear)해야합니다.
이 같다) (저장 내, 그리고 내가 이클립스를 실행할 때 작동하는 것 같군,하지만 난 내 .jar 파일 실행 실행하면 작동하지 않습니다
public void save(Game game) throws IOException{
Document doc = DocumentHelper.createDocument();
doc.add(game.save());
File save=null;
save = new File("save.xml");
FileWriter writer = new FileWriter(save);
doc.write(writer);
writer.close();
}
을 그리고 이것은이다 내가 파일에서 다시에 관한 것은 얻을 방법 :
public Game getinfofromxml() throws IOException{
Game game;
SAXReader reader = new SAXReader();
try{
URL fileWithData= new File("save.xml").toURI().toURL();
Document document = reader.read(fileWithData);
Element alreadySavedGame= document.getRootElement();
game= getGameSaved(alreadySavedGame);
}catch(DocumentException ex){
throw new IOException();
}
return game;
}
을 다시, 이것은 이클립스에서 작동하지만, 난 내 jar 파일에서 실행할 때 작동하지 않습니다. Eclipse에서 xml 파일은 MyGame 폴더에 만들어 지지만 내 .jar 폴더에는 생성되지 않습니다. 내 .jar을 실행할 때 XML이 전혀 작성되지 않습니다.
이제는 클래스 패스와 관련이 있다는 것을 읽었습니다. 컴파일을 어떻게하는지 알려 드리겠습니다.
1) 빌드 디렉토리를 만드는 Ant를 실행합니다. .jar 파일은 자동으로 생성되지 않습니다.
Main-Class: aSpecialFolderWhereTheEntryPointIs.MyMainClass
Class-Path: .
3) 내가 cmd를에 .jar 파일 생성 : 2) 내가 쓸 경우, manifest.txt가 파일을 생성 그래서 jar cfm myGame.jar Manifest.txt *
을, 나는라고 생각하지 않습니다 거기에 너무 많은 실수를하면 ...
5 월 개미가 그와 관련이 있습니까? 아이디어가 있으십니까? 미리 감사드립니다 (내 영어는 유감입니다)
예, 일반적으로 파일을 저장할 위치를 제어하는 절대 경로를 사용해야합니다. 사용자가 속성이나 다른 것을 통해이 경로를 제어하도록 허용 할 수 있습니다. –
만약 내가 두 번 clic .jar 파일 .. 그 디렉토리에서 시작된 jvm 아닌가요? – FDrico