2012-01-15 3 views
1

나는 잠시 동안 이것을 둘러 보았고 결론적으로 아무 것도 발견하지 못했습니다.JAR Java Project 내에서 값을 저장하는 방법

저는 (데스크톱 응용 프로그램)을 실행하고 싶을 자바 프로젝트가 있습니다. 처음 시작했을 때, 사용자가 각 변수의 값을 영원히 유지할 몇 가지 값을 입력하기를 바랍니다. - jar 파일을 실행하면 변경된 값이 초기 패키지 값 대신 표시됩니다.

xml을 사용하여 jar 파일 내에 파일을 저장하고 읽었습니다. 성공하지 못했습니다. 이제 저는 이것을 선택했습니다.

그러나 더 간단한 방법이 있다면 나에게 계몽하시기 바랍니다. 이것은 나를위한 더 큰 프로젝트의 초기 단계 중 하나이며이 문제를 해결할 때까지 거절합니다.

답변

1

큰 파일이 아니라 저장할 값이 적은 경우 Preferences은이를 위해 설계된 솔루션입니다.

Preferences prefs = Preferences.userRoot().node("/com/yourcompany/yourprogram"); 

int value = prefs.getInt("key", -1); 
if(value == -1) { 
    prefs.put("value", Integer.parseInt(
      JOptionPane.showInputDialog("Enter value:")); 
    prefs.flush(); 
} 
+0

예 사실 저장소에 저장할 값이 거의없고 실제로 환경 설정입니다. 응용 프로그램이 MySQL 서버와 통신하기를 원합니다. 그래서 사용자가 '서버 주소'와 '서버 포트'를 사용하여 연결을 설정하기를 원합니다. 그것들은 JAR 내에 저장하고자하는 유일한 두 변수입니다. 그래서 당신이 언급 한이 환경 설정은 Java 내의 클래스입니까? ... 흠, 그것을 볼 것입니다 :) 감사합니다 –

+0

당신들은 별들입니다! 모두에게 감사드립니다! shoo, 당신은 내가 이걸로 내 머리를 두들겨 봤는데, 결국 난 그냥 XML 방식으로하고 싶었지만, 그것은 매우 지루한 것 같았다. 불면의 밤 문제를 해결했습니다! :) 모두들 도와 주셔서 고마워요! 추신. didnt는 심지어 환경 설정 클래스가 있었다라는 것을 알고있다. 좋은 사람! :) 해결! 아, 다른 사람의 경우에 대비해 ... [PREFERENCES TUTORIAL] (http://java.sun.com/developer/technicalArticles/releases/preferences/) –

+0

많은 양의 데이터가 있다면 우리는 할수있다? – Aman

3

당신은 JAR 안에 글을 써서는 안됩니다. 해당 사용자의 디렉토리에 입력 한 값을 저장하는 것이 좋습니다 (System.getProperty("user.home")을 사용하여 사용자 디렉토리 경로를 얻을 수 있음). 그런 다음 사용자 디렉토리에있는 파일이 있는지 확인할 수 있습니다. 그렇다면 사용하십시오. 그렇지 않은 경우 사용하십시오. 기본값이 들어있는 JAR 파일을 사용하십시오 (또는 사용자에게 값 입력을 요청하십시오).

+1

와우, 빠른 답변 주셔서 감사합니다. 내가 당신에게 내가 그것을 고려하지 않았다고 말하면 나는 거짓말을 할 것이다 ... 내가 그렇게하지 않기로 선택한 유일한 이유는 하나의 파일에 모든 것을 패키지화하고, 분리를 싫어하는 것이다! 좋습니다. 런타임시 변수를 업데이트 할 수 있습니까? 일단 다시 시작하면 변수가 변경된 상태로 유지됩니까? –

관련 문제