반응형

자바 프로그램을 만들때 Mac에서 .app으로 jar 파일을 bundle하는 경우가 있다.

jar파일을 application으로 번들하면 파일들의 위치를 잡을때 매우 곤란한 경우가 발생하였다.

그이유는 application으로 실행하였을때 파일 경로를 System.getProperty("user.dir")로 받아오는데 이경로가 application경로가 아닌 /User/계정으로 잡히기 때문이다.

 - com.apple.eio.FileManager.getPathToApplicationBundle() 이 함수를 이용하면 application의 위치를 찾아준다.

위 함수로 경로를 확인하면

/User/계정/Desktop/My.app

이라는 결과를 볼 수 있다.

이제 app 위치를 찾았으니 com.apple.eio.FileManager.getPathToApplicationBundle()+"/Contents/Java/"를 더해줘서 app파일 내 Java폴더에 

DB나 textfile을 넣어두면 application만 들고 있으면 어디서든 실행이 가능한 application이 된다.

CommentDB = DriverManager.getConnection("jdbc:sqlite:"+com.apple.eio.FileManager.getPathToApplicationBundle()+"/Contents/Java/resources/DB/commentDB.db");

위 코드는 내가 사용하는 DB 위치를 얻는 방법이다.

반응형

+ Recent posts