표준 응용 프로그램 데이터 저장소 디렉토리에 옵션과 LWJGL jar를 저장하는 Java 게임을 만들었습니다 (Windows의 경우 C : \ Users \ user \ AppData \ roaming \ application, ~ /이라고 생각합니다). Linux의 응용 프로그램, ~/Library/Preferences for Mac). 현재 System.getProperty (os.name)를 사용하고 있고 올바른 파일 경로 (system.getProperty (user.home)를 사용하고 올바른 파일 경로를 추가하는)를 선택하기 위해 if-else를 사용합니다. 그러나 if-else는 OS 이름에서 Windows, Mac 또는 Linux를 찾지 못하기 때문에 일부 이상한 OS에서는 작동하지 않을 수 있습니다. 또한 일반적으로이 작업을 수행하는 것은 매우 나쁜 방법입니다 (if- 그렇지 않으면 Windows 또는 Mac이 아닌 경우 OS는 Linux라고 가정합니다). 응용 프로그램 데이터와 LWJGL jar를 올바른 경로에 저장하는 Minecraft를 디 컴파일하려고 시도했지만 코드가 난독 화되었습니다. 내가 이것을 할 수있는 더 좋은 방법이 있습니까, 아니면 os.name에 if-else를 고수해야합니까?플랫폼 독립적 인 파일 저장소 Java
0
A
답변
1
구성 기본 설정에는 Java 기본 설정 API가 있습니다.
다른 파일의 경우이 문제에 대한 해결책을 찾지 못했습니다. 가장 좋은 해결책은 현재 user.home
속성을 기반으로하는 대체 방식을 사용하여 OS 유형에 파견하는 것입니다.
Linux/Unix (Mac 아님)의 경우 XDG Base Directory specification을 기릴 수 있습니다.
0
해야하는없이 사방이 작품, 즉 같은 아닌 경로 경우 - 다른-경우 :
String userHome = System.getProperty("user.home");
if (!userHome.endsWith("/")) {
userHome += "/";
}
String targetPath = userHome + ".myapp/settings.properties";
+0
이것은 모든 곳에서 작동하지만, 기본 설정 저장 위치 (예 : Windows의 경우 user.home/AppData/roaming/appName /)와는 맞지 않습니다. –
2
Java Preferences API이 같은 목적을 위해 특별히 제작되었다.
관련 문제
- 1. c 비트 필드의 플랫폼 독립적 인 저장소
- 2. 플랫폼 독립적 인 방법
- 3. 언어 독립적 인 저장소 클래스?
- 4. 플랫폼 독립적 인 목표 C
- 5. 플랫폼 독립적 인 이클립스 설정
- 6. 플랫폼 독립적 인 수학 라이브러리
- 7. 플랫폼 독립적 인 C++ DLL
- 8. 중첩 된 독립적 인 git 저장소 관리
- 9. 추가 패키지가없는 C/C++/java 플랫폼 독립적 인 코드
- 10. 플랫폼 독립적 인 바이너리 파일 I/O를위한 C/C++ 라이브러리
- 11. 플랫폼 독립적 인 소켓 통신 프로토콜
- 12. 플랫폼 독립적 인 고유 한 컴퓨터 ID java
- 13. 플랫폼 독립적 인/dev/null Java 용 출력 싱크
- 14. 플랫폼 독립적 인 Java <-> C# 상호 운용성
- 15. 플랫폼 독립적 인 메모리 매핑 됨 [파일] IO
- 16. Python - 플랫폼 독립적 인 5.1 사운드 라이브러리
- 17. C++ : 플랫폼 독립적 인 게임 라이브러리?
- 18. 플랫폼 독립적 인 퍼멀 링크 - 모범 사례?
- 19. 플랫폼 독립적 인 키 코드 제공 방법
- 20. GWT 플랫폼 독립적 인 개행 문자
- 21. 플랫폼 독립적 인 경량 프로그래밍 언어
- 22. SBO에 액세스하는 플랫폼 독립적 인 방법은 무엇입니까?
- 23. 플랫폼 독립적 인 스레드 간 통신
- 24. 클라이언트 플랫폼 독립적 인 웹 서비스 만들기
- 25. 글꼴을 찾을 수있는 플랫폼 독립적 인 방법
- 26. 플랫폼 독립적 인 스크린 세이버 (Qt 포함)
- 27. 플랫폼 독립적 인 방식으로 QWidget에서 SDL_surface 렌더링
- 28. 플랫폼 독립적 인 size_t 형식 지정자는?
- 29. 자바 오디오 스트림 플랫폼 독립적 인
- 30. 멀티 플랫폼 단일 파일 저장소
이러한 파일을 특정 위치에 저장해야합니까? – Smit
참고 : 1) ['Preferences'] (http://docs.oracle.com/javase/7/docs/api/java/util/prefs/Preferences.html) * "이 클래스를 사용하면 응용 프로그램에서 응용 프로그램을 저장하고 검색 할 수 있습니다 사용자 및 시스템 환경 설정 및 구성 데이터.이 데이터는 구현 종속적 인 저장소에 지속적으로 저장됩니다. "* 2) JWS의 [PersistenceService] (http://pscode.org/jws/api.html#bs) 앱. 3) 애플릿을위한 쿠키. –