스윙 및 스윙 응용 프로그램 프레임 워크 (JSR 296)를 사용하여 Java로 작은 응용 프로그램을 개발하고 있습니다. Windows 및 Linux에서 작동해야합니다.스윙 응용 프로그램 프레임 워크는 프로그램 세션 (창 위치, 크기 등)을 Linux에 저장하지 않습니다.
Windows XP 세션 (창 게시, 크기 등)은 저장되지만 Linux에서는 그렇지 않습니다! 프로그램이 SingleFrameApplication을 확장합니다. 자동으로 창 위치를 저장해야합니다. 추가 코드는 작성되지 않았습니다. 프레임 워크 소스를 추적했지만 잘못된 점은 발견하지 못했습니다. 세션 저장소는 창 상태를 홈 폴더의 .MyApp 디렉토리에 저장해야합니다. 파일이 없습니다. 세션 속성이 아닌 java 속성을 사용하여 xml에 수동으로 저장하는 사용자 매개 변수가 있습니다! 이 파일은 홈 폴더의 .MyApp 디렉토리에 아무 문제없이 저장됩니다!
누구도 프로그램이 Linux에서 상태를 저장하지 않는 이유를 알고 있습니까? 그렇지만 Windows에서는 어떻게됩니까?
해결 : 이유는 OpenJDK가 SAF와 호환되지 않기 때문입니다. OpenJDK를 제거하고 Oracle 창에서 JDK를 설치 한 후 &을 저장하면 해당 위치와 크기가 복원됩니다.
왜'java.util.prefs.Preferences'를 사용하지 않습니까? –
Swing Application Framework는 자동으로 세션을 저장하기 때문에. 수동으로 저장하는 것은 작업입니다. – Exterminator13
먼저 BSAF로 전환하는 것이 좋습니다. 지원되는 BSAF입니다 (SAF는 몇 년 동안 활동하지 않았습니다). 이것은 세션 저장소 디렉토리에 대한 권한 문제입니다. – jfpoilpret