반응형
[Java 실습 #24] 해당 class의 jar 파일 경로 추출
1. class를 가지고 있는 jar 파일의 경로 추출
2. 개발환경
2.1. 개발환경
2.2. 라이브러리
3. 구현
3.1. 프로젝트 구조
3.2. 구현 - 소스코드
4. 결과
1. class를 가지고 있는 jar 파일의 경로 추출
2. 개발환경
2.1. 개발환경
MacOS M1 - macOS Monterey 12.0.1
IntelliJ IDEA 2021.2 (Community Edition)
2.2. 라이브러리
JDK 1.8
3. 구현
3.1. 프로젝트 구조
3.2. 구현 - 소스코드
[pom.xml]
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
32
33
34
35
36
37
38
39
40
41
42
|
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>io.home.test</groupId>
<artifactId>test-jar-location</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<build.jdk.source>8</build.jdk.source>
<build.jdk.target>8</build.jdk.target>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<source>${build.jdk.source}</source>
<target>${build.jdk.target}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.2</version>
<configuration>
<archive>
<manifest>
<mainClass>io.home.test.Test</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
</project>
|
[Test.java]
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
|
package io.home.test;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
public class Test {
public static void main(String[] args) {
System.out.println("path: " + getJarFileName(Test.class));
}
public static String getJarFileName(Class clazz) {
try {
String jarFilePath = "" + clazz.getResource("/" + clazz.getName().replace('.', '/') + ".class");
int sub = jarFilePath.indexOf("!");
if (sub < 0) return null;
jarFilePath = jarFilePath.substring("jar:file:".length(), sub);
jarFilePath = URLDecoder.decode(jarFilePath, "UTF-8");
jarFilePath = jarFilePath.replace('\\', '/');
return jarFilePath;
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return null;
}
}
|
4. 결과
mvn clean install
java -jar ./target/test-jar-location-1.0-SNAPSHOT.jar
주의사항
- Windows os에서 실행시에는 jar 파일 경로를 못 가져올 것으로 예상
반응형
'JAVA 자바 > JAVA 실습' 카테고리의 다른 글
[Java 실습 #25] 간단한 Http 호출 - HttpURLConnection 활용 (0) | 2022.08.12 |
---|---|
[Java 실습 #18] InputStream 재사용 (3) - InputStream 재사용 class 활용 (0) | 2022.01.03 |
[Java 실습 #18] InputStream 재사용 (2) - ByteArray에 저장하여 사용 (0) | 2021.12.29 |
[Java 실습 #18] InputStream 재사용 (1) - mark, reset 활용 (0) | 2021.12.29 |
[Java 실습 #17] InputStream을 ByteArray로 변환 (0) | 2021.12.29 |