티스토리 뷰
JAVA로 만든 executable jar를 pkg로 만들어보자.
* 준비물
- appmaker2.app, executable jar, terminal
URL : https://sourceforge.net/projects/jarappmaker/ (appmaker2.app)
1. appmaker2.app로 test.jar를 test.app로 변환
2. 변환한 test.app 파일의 Contents -> MacOS -> launcher 를 텍스트 에디터로 연다.
2.1 여기서 작업할 내용은
- 자바 설치 유무
- 자바 버전 체크
osx(mac)에서는 JAVA가 설치되어 있지 않은 상태에서 terminal에서 java 명령어를 쓰면 OS 자체에서 JDK를 설치하라고 Oracle 사이트를 링크한다.
JDK를 설치하면 자동으로 $JAVA_HOME이 세팅되며, java 명령어를 사용할 수 있는데 JRE만 설치하면 $JAVA_HOME은 물론이고 java 명령어도 먹질 않는다.
여기서 우리는 강제로 JRE 설치 경로의 java path를 추출하여 "...././java" 라고 명령어를 사용할 것이다.
자바 설치 유무
launcher
1) 먼저 $JAVA_HOME을 검색한다 (JDK가 설치되어있다면 경로가 자동으로 잡히므로)
2) $JAVA_HOME이 있다면 $JAVA_HOME/bin/java가 실행 가능한지 체크 (JDK가 설치되어 있다면 _java 변수에 java 실행파일 경로를 넣는다.)
3) $JAVA_HOME 이 없다면 $JRE_HOME을 사용하여 1), 2) 을 체크한다 (JRE가 설치되어있다면 _java 변수에 java실행파일 경로를 강제로 넣는다)
4) JRE 또는 JDK가 설치되어 있지 않다면 에러메세지를 띄우고 자바 설치사이트로 이동
자바 버전 체크
자 JRE 또는 JDK가 설치되어 있다면 _java에 java 실행 파일 경로를 넣었다. 이 경로를 사용하여 버전을 체크해보자
배포하는 executable jar의 최소 자바버전을 세팅하자 해당 버전보다 낮다면 메세지를 띄워 자바를 업데이트 하게 한다.
여기까지 작성하고 test.app를 실행시켜보면 상황에 따라 잘 작동할 것이다.
3. osx(mac)에서 제공하는 pkgbuild 명령어를 사용하여 test.pkg를 만든다.
아래는 release 폴더에 .pkg 파일을 만들기 위한 준비물들이다.
release
-- test.app
-- Scripts
-- -- PREINSTALL
-- -- POSTINSTALL
* test.app : launcher를 수정한 appmaker2 로만든 executable jar 파일
* Scripts/PREINSTALL : 설치 전에 해야할 작업을 작성할 파일
* Scripts/POSTINSTALL : 설치 후에 해야할 작업을 작성할 파일
3.1 pkgbuild를 사용하기 전에, 설치 전 단계에서 해야할 작업을 작성해보자
PREINSTALL
launcher 파일과 동일하게 설치전 JRE or JDK 설치 유무 및 버전 체크를 한다.
다만, 다른점은 설치 전 test.app 이전버전이 존재한다면, PID를 검색해 구동중인 test 프로세스를 끄는 작업이 추가되었다.
3.2 설치가 끝나고 난 뒤, 작업할 내용을 작성하자
POSTINSTALL
/Application 경로에 test.app을 설치(설치보단 복사) 하고 난 뒤의 행동에 대한 작성할 내용인데,
osascript 를 사용하여서 login item에 test.app을 넣어 재부팅을 하면 자동으로 test.app이 실행되도록 한다.
마지막으로 설치된 test.app를 open을 사용하여 실행시켜준다.
이렇게 설치 세팅이 완료되면 terminal pkgbuild 명령어를 통해 생성하자
pkgbuild --root test.app --identifier com.test --scripts Scripts --install-location /Applications/test.app test.pkg
'programming > etc' 카테고리의 다른 글
[algorithm] Find the only Non-Duplicate Element in Array (0) | 2018.11.06 |
---|---|
[linux] fedora 에서 .jar 파일 클릭 실행 (0) | 2017.04.24 |
[etc] 암달의 법칙 (0) | 2017.02.24 |
[etc] 유니코드 (0) | 2017.02.16 |
[etc] 윈도우 라이브러리 파일 (0) | 2017.02.02 |
- Total
- Today
- Yesterday
- AES
- HTTPS
- full stack
- iOS10
- reactivex
- execute double click
- angular
- build set
- yss
- TypedArray
- Visual Studio
- 윈도우 라이브러리
- cipher
- node js
- TLS1.2
- Universal CRT
- rxswift
- 비대칭키
- executable jar
- JavaScript
- ATS
- PCX
- ucrtbase.dll
- App Transport Security
- 대칭키
- Node.js
- 암호화
- MEAN stack
- 전자서명
- remote debug
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |