2013-07-17 3 views
0

데이터베이스의 멤버를 관리하는 간단한 애플리케이션을 만들었습니다. 이 프로그램은 서버 모드에서 HSQLDB를 실행합니다. 모두는 programm 코드 내에서 시작되었습니다. 프로그램은 Installer를 통해 배포되며 물론 사용자는이 프로그램을 설치할 위치를 선택할 수 있습니다. 이제 가장 특이한 문제를 발견했습니다. 내 win7 노트북에서는 앱을 어디에 설치해야하는지는 중요하지 않습니다. 그것은 매력처럼 작동합니다. 그러나 다른 컴퓨터에서는 programm 파일 폴더 외부의 설치 만 작동합니다. programm 파일 내부에서 java가 hsqldb.jar을 찾을 수없는 것처럼 보입니다. hsqldb.jar의 전체 파일 경로를 PATH에 추가해도 작동하지 않으며 다른 컴퓨터에서는 모든 것이 다시 정상적으로 작동합니다. 어떤 아이디어? (모두 win7)java set path hsqldb

포함 된 runserver.bat를 통해 서버를 수동으로 시작하는 것조차도 작동하지 않는 것 같습니다.

답변

0

UAC의 변경으로 인해 직면 한 문제.

관리자가로드되어 있고 UAC가 낮게 설정되어있어이를 극복 할 수 있지만 이상적인 솔루션은 아닙니다. (어떤 사용자 Java가 설치되었고 설치된 응용 프로그램도 따로 따로 실행됩니다.

더 나은 해결책은 데이터베이스를 사용자가 수용 할 수있는 위치에 놓는 것입니다.

System 속성 user.dir (즉 System.getProperty("user.dir");)을 기본 위치로 사용하는 것이 좋습니다. 여기에서 응용 프로그램의 이름을 지정하여 AppData\Roaming 아래에 디렉토리를 만들고 응용 프로그램 특정 데이터를이 위치에 쓸 수 있습니다.

이렇게하면 특정 사용자의 쓰기 가능한 위치에 데이터베이스가 배치됩니다.

(PS - 당신은 AppData\Roaming를 사용할 필요가 없습니다 당신은 그들이 로밍 프로필을 사용하는 경우 사용자를 따라 설정을하지 않는 대신 경우 AppData\Local을 사용할 수 있습니다 ... 또는 당신은 걱정하지 않는다;))