Architecture, Java

Jeonghak Choยท2025๋…„ 5์›” 18์ผ

Provisioning

๋ชฉ๋ก ๋ณด๊ธฐ
24/44

๐Ÿ“— Provisioning - JAVA

๐Ÿณ๏ธโ€๐ŸŒˆ [๊ถ๊ธˆํ•œ์ ]

  • JAVA ๋‹ค๋ฅธ ๋ฒ„์ „ ์„ ํƒ ๋ฐฉ๋ฒ•
  • JAVA ์ธ์ฆ์„œ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•

๋ชฉ์ฐจ

์ž๋ฐ” ๋ฒ„์ „ ๋ณ€๊ฒฝ

pom.xml์—์„œ Maven ์ปดํŒŒ์ผ๋Ÿฌ ์„ค์ • ๋ณ€๊ฒฝ

์˜ˆ: Java 17์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ ์„ค์ •:

<properties>
    <maven.compiler.source>17</maven.compiler.source>
    <maven.compiler.target>17</maven.compiler.target>
</properties>

์‹ค์ œ ๋นŒ๋“œ์— ์‚ฌ์šฉ๋  JDK ์„ค์ •

Maven์ด ์‚ฌ์šฉํ•˜๋Š” ์‹ค์ œ JDK๋„ ์‹œ์Šคํ…œ์— ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.

java -version
javac -version

Ubuntu/Linux (update-alternatives ์‚ฌ์šฉ ์‹œ):

sudo update-alternatives --config java
sudo update-alternatives --config javac

Maven์ด ์‚ฌ์šฉํ•˜๋Š” Java ํ™•์ธ

mvn -v
โ†’ Java version: ... ๋ถ€๋ถ„์ด ์›ํ•˜๋Š” ๋ฒ„์ „์ธ์ง€ ํ™•์ธ

์ž๋ฐ” ๊ฒฝ๋กœ ์„ค์ •

ํ˜„์žฌ ์‚ฌ์šฉ ์ค‘์ธ Java ๊ฒฝ๋กœ ํ™•์ธ

which java
/usr/bin/java
  • ์ด ๊ฒฝ๋กœ๋Š” ๋ณดํ†ต ์‹ฌ๋ณผ๋ฆญ ๋งํฌ. ์‹ค์ œ ์œ„์น˜๋ฅผ ํ™•์ธ
ls -l $(which java)

lrwxrwxrwx 1 root root 22 Jan 1 00:00 /usr/bin/java -> /etc/alternatives/java

ls -l /etc/alternatives/java

/usr/lib/jvm/java-17-openjdk-amd64/bin/java

์—ฌ๊ธฐ์„œ /usr/lib/jvm/java-17-openjdk-amd64 ์ด ์‹ค์ œ ์„ค์น˜๋œ ๋””๋ ‰ํ† ๋ฆฌ์ด๋ฉฐ, ์ด ๊ฒฝ๋กœ๋ฅผ JAVA_HOME์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ๋œ๋‹ค.

ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ์ž๋ฐ” ๋ฒ„์ „ ํ™•์ธ

java -version

openjdk version "17.0.10" 2024-01-16
OpenJDK Runtime Environment (build 17.0.10+7)
OpenJDK 64-Bit Server VM (build 17.0.10+7, mixed mode)

์‹œ์Šคํ…œ์— ์„ค์น˜๋œ ์ „์ฒด Java ๋ชฉ๋ก ํ™•์ธ

update-java-alternatives --list

java-1.11.0-openjdk-amd64  1111  /usr/lib/jvm/java-1.11.0-openjdk-amd64
java-1.17.0-openjdk-amd64  1711  /usr/lib/jvm/java-1.17.0-openjdk-amd64

JAVA_HOME ์„ค์ • ๋ฐฉ๋ฒ•

Bash ๊ธฐ์ค€ ์˜ˆ์‹œ (~/.bashrc ๋˜๋Š” ~/.profile์— ์ถ”๊ฐ€):

export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH

source ~/.bashrc

์ž๋ฐ” ๋ฒ„์ „ ๋ณ€๊ฒฝ

acho@DESKTOP-SCOK45O:~$ sudo update-alternatives --config java
There are 3 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-21-openjdk-amd64/bin/java      2111      auto mode
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      manual mode
  2            /usr/lib/jvm/java-21-openjdk-amd64/bin/java      2111      manual mode
* 3            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode

Press <enter> to keep the current choice[*], or type selection number: 0
update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/java to provide /usr/bin/java (java) in auto mode
  • 21 ๋กœ JAVA_HOME ๋ณ€๊ฒฝ
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64/
export PATH=$JAVA_HOME/bin:$PATH

source ~/.bashrc

์ธ์ฆ์„œ ์ฒ˜๋ฆฌ

Java๋Š” ์‹œ์Šคํ…œ์˜ ์ธ์ฆ์„œ ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ž์ฒด TrustStore(cacerts) ๋ฅผ ์‚ฌ์šฉ

openssl s_client -connect example.com:443 -showcerts </dev/null 2>/dev/null | openssl x509 -outform PEM > server.crt

sudo keytool -import \
  -trustcacerts \
  -alias my_cert \
  -file server.crt \
  -keystore /usr/lib/jvm/java-21-openjdk-amd64/lib/security/cacerts \
  -storepass changeit

0๊ฐœ์˜ ๋Œ“๊ธ€