본문 바로가기
Programming/JAVA

[JAVA/Launch4J/exe] 자바 jar파일을 EXE로 래핑하기

by Pendine 2022. 4. 27.
728x90

jar파일을 EXE로 래핑하기위해서 사용하는 라이브러리 : launch4j

 

				<!-- 실행파일 래핑 플러그인 START -->
				<plugin>
				  <groupId>com.akathist.maven.plugins.launch4j</groupId>
				  <artifactId>launch4j-maven-plugin</artifactId>
				  <version>2.1.2</version>
				  <executions>
				    <execution>
				      <id>l4j-clui</id>
				      <phase>package</phase>
				      <goals>
				        <goal>launch4j</goal>
				      </goals>
				      <configuration>
				        <headerType>console</headerType>
				        <outfile>target/실행파일명.exe</outfile><!-- 프로젝프 파일내에서 생성될 위치 -->
				        <jar>target/래핑타겟jar파일명.jar</jar><!-- 프로젝트 파일 내에서 래핑할 파일정보 -->
				        <classPath>
				          <mainClass>com.Demo.main.Main</mainClass><!-- 프로젝트에서 실행할 메인 클래스 경로 -->
				        </classPath>
				        <jre>
				          <minVersion>1.8</minVersion>
                          <!-- 짠 실행 옵션 추가! 2022 07 06 -->
				          <opts>-D"file.encoding=UTF-8"</opts>
				        </jre>
				      </configuration>
				    </execution>
				  </executions>
				</plugin>
				<!-- 실행파일 래핑 플러그인 END -->

		<!-- exe 래핑 의존성 START -->
		<!-- https://mvnrepository.com/artifact/com.akathist.maven.plugins.launch4j/launch4j-maven-plugin -->
		<dependency>
		    <groupId>com.akathist.maven.plugins.launch4j</groupId>
		    <artifactId>launch4j-maven-plugin</artifactId>
		    <version>2.1.2</version>
		</dependency>
		<!-- exe 래핑 의존성 END -->

필요한 부분만 적어뒀다.

 

기존 배포파일을 실행할때는 JAVA.exe파일을 복제해서 이름 바꾼뒤

실행파일로 원하는 jar파일을 실행시킬때마다 바로가기 파일을 이용해서 실행시켜줬는데....

 

최근 회사에서 시스템 장애진단 프로그램에서 사용하기 위해 프로세스명을 바꿔야해서 찾아봤다.

사람이 하는 일인 이상 오류가 발생할 것이라는 말을 들어서 찾아본결과

launch4j 의 응용파일을 사용하거나

 

pom.xml 에서 maven으로 추가하도록 찾아본 결과다.

 

launch4j의 응용파일을 사용해봤는데 뭔가 잘 안되서 maven으로 의존성과 플러그인을 이용해보니 잘되서 이것을 작성하게 됐다.  

 

아마 응용파일도 설정을 어찌어찌 잘 해보면 될 것 같긴한데...

어쨌거나 저쨌거나 무슨 방법을 사용하던간 자바의 프로세스 명을 변경하려면

컴파일 전이든 컴파일 후 건, 손을 한번 더 거처야 한다...

 

2022 07 06

인터넷에서 받아올때 실행하는 서버 환경이 윈도우일경우 실행 옵션을 설정해줘야하는것 때문에 바로가기에서 항상 실행옵션에서 파일 인코딩 형식을 지정해줬었는데

https://stackoverflow.com/questions/56353183/using-launch4j-to-build-executable-with-encoding-option

 

Using launch4j to build executable with encoding option

I'm trying to write korean to a txt file. I've done the coding part and exported project to runnable jar. When I run jar file using terminal as Java -Dfile.encoding="UTF-8" -jar Utul.jar it works

stackoverflow.com

이 글과 launch4j 화면에서 보고 프로퍼티 추가했음.

옵션이라는 태그 밑에 JVM options라고 되어있어서 pom.xml에서 태그안에 태그가 추가되어야 했나 싶었는데

위에 적은것처럼 <opts></opts> 안에 넣어주니까 됐다.

728x90

댓글