1. ์ ์ฅ์ ์ ๋ฐ์ดํธํ๊ธฐ
์๋ก์ด ํ๋ก๊ทธ๋จ์ ๊น๊ธฐ ์ ์ $sudo apt update && apt upgrade ๋ก ํญ์ ์ ์ฅ์๋ฅผ ์ ๋ฐ์ดํธ ๋ฐ ์ ๊ทธ๋ ์ด๋๋ฅผ ํ๋ ์ต๊ด์ ๋ค์ด์.
2. ์๋ฐ Open JDK 17๋ฒ์ ์ค์นํ๊ธฐ
$sudo apt –y install openjdk-17-jdk ๋ก ์๋ฐ Open JDK 17 ๋ฒ์ ์ ์ค์น๋ฅผ ํ๋ค.
์ค์น๊ฐ ๋๋๋ฉด, ์ค์น๊ฐ ์ ๋๋ก ๋์๋์ง ํ์ธ์ ํด๋ณด์.
$java –version ์ ์๋ฐ ๊ฐ์๋จธ์ ์ค์น ๋ฒ์ ์ ํ์ธํ ์ ์๊ณ ,
$javac –version ์ ์๋ฐ ์ปดํ์ผ๋ฌ ์ค์น ๋ฒ์ ์ ํ์ธํ ์ ์๋ค.
๊ทธ๋ผ ์๋ฐ๊ฐ ์ด๋์ ์ค์น๋ ๊ฒ์ผ๊น?
์๋ฐ ์คํํ์ผ์ด ์ค์น๋ ์์น๋ฅผ ์ฐพ๊ธฐ ์ํด $which java ๋ฅผ ์ณ๋ณด๋ฉด /usr/bin/java ๋ผ๋ ๊ฒฝ๋ก๊ฐ ๋์จ๋ค. ํ์ง๋ง ์ด ๊ฒฝ๋ก๋ ์ฌ๋ณผ๋ฆญ๋งํฌ๋ก ๋ง๋ค์ด์ง ๊ฐ์ ์์น์ด๊ณ , ์ค์ ๊ฒฝ๋ก๋ฅผ ํ์
ํ๊ธฐ ์ํด์๋ readlink ๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
$readlink –f /usr/bin/java or $readlink -f $(which java)
์๋ฐ๊ฐ ์ค์น๋ ์ค์ ๊ฒฝ๋ก๋ /usr/lib/jvm/java-17-openjdk-amd64 ์ด๋ค.
์๋ฐ์ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ํ์ธํ๋ ค๋ฉด $ls -al java ๋ฅผ ์ณ๋ณด๋ฉด ์ด๋ก์ ๋งํฌ๋ก ๋์จ๋ค.
3. ํ๊ฒฝ๋ณ์ ์ค์ (๊ฐ์ธ ๊ณ์ )
์ด์ ํ๊ฒฝ๋ณ์๋ฅผ ์ค๊ฒฝ๋ก๋ก ๋ณ๊ฒฝํด์ฃผ๋ฉด ๋๋ค. $vi .bashrc ๋ก .bashrc ํ์ผ์ ์ด์ด ๋งจ ๋ฐ์ ๋ด์ฉ์ ์ถ๊ฐํ๋ค. ์ด๋, ๋งจ ๋ฐ์ผ๋ก ๊ฐ๋ ๋จ์ถํค๋ ] ํค๋ฅผ ๋๋ฒ ๋๋ฌ์ฃผ๋ ๊ฒ์ด๋ค.
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/lib:.:
๋ค ์ค์ ํ์์ผ๋ฉด :wq!๋ก ์ ์ฅํ๊ณ , $source .bashrc ๋ก ๋ฐ๋ ํ๊ฒฝ์ ์ ์ ์ ์ฉํด์ฃผ๋ฉด ๋๋ค.
ํ๊ฒฝ๋ณ์๊ฐ ์ ์ค์ ๋์๋์ง ํ์ธํ๊ณ ์ถ์ผ๋ฉด, $echo $CLASSPATH ๋ฅผ ์ ๋ ฅํด์ ์ค๊ฒฝ๋ก๊ฐ ์ ๋์ค๋์ง ํ์ธํ๋ฉด ๋๋ค.
4. ์ฌ๋ฌ ๋ฒ์ ์ ์๋ฐ ์ค์นํ๊ธฐ
Java 11๋ ๊น์์ ์ํ ๋ ์์ฝ๊ฒ ๋ณ๊ฒฝํด์ ์ฌ์ฉํ ์๋ ์๋ค.
๋จผ์ ์ํ๋ ๋ฒ์ ์ ์๋ฐ๋ฅผ ๋๊ฐ์ ๊ณผ์ ์ผ๋ก ๊น์์ฃผ๋ฉด ๋๋ค.
์ค์น๋ ์๋ฐ์ ์ข
๋ฅ๋ฅผ ํ์ธํ๋ ๋ช
๋ น์ด๋ $update-alternatives --list java ์ด๋ค.
๊ทธ๋ฆฌ๊ณ ํ๊ฒฝ๋ณ์์ ์๋ก์ด ์๋ฐ์ ์ค๊ฒฝ๋ก๋ฅผ ์ถ๊ฐํด์ฃผ๋ฉด ๋๋๋ฐ, ๋ค์ .bashrc๋ก ๋ค์ด๊ฐ์ ํ๊ฒฝ๋ณ์๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ๋ฐ๊ฟ์ฃผ๋ฉด ๋๋ค.
๋ณ๊ฒฝ์ : /usr/lib/jvm/java-17-openjdk-amd64
๋ณ๊ฒฝํ : $(readlink –f $(which java) | sed "s:/bin/java::")
๊ทธ๋ผ ๋ ๊ฐ์ ์๋ฐ ๋ฒ์ ์ด ์ค์น๋ ๊ฒ์ด๋ค.
์๋ฐ ๋ฒ์ ์ ๋ณ๊ฒฝํ๊ณ ์ถ๋ค๋ฉด,
$sudo update-alternatives --config java
$sudo update-alternatives --config javac
๋ก ์๋ฐ ๊ฐ์๋จธ์ ๊ณผ ์ปดํ์ผ๋ฌ๋ฅผ ๋ ๋ค ๋ฐ๊ฟ์ฃผ๊ณ $source .bashrc ๋ก ์ ์ฉํ๋ฉด ๋๋ค.
๋ฒ์ ์ ํ์ธํด๋ณด๋ฉด ์ ๋ฐ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
5. HelloWorld.java ๋ง๋ค์ด๋ณด๊ธฐ
๋ค์์ ์ ๋ง ๋ง์ด ์ฐ์ด๋ ๊ธฐ๋ณธ ๋ช ๋ น์ด ์ค ์ผ๋ถ๋ค.
mkdir ์ด๋ฆ: ๋๋ ํฐ๋ฆฌ ๋ง๋ค๊ธฐ
rm -r ์ด๋ฆ: ๋๋ ํฐ๋ฆฌ ์ญ์ ํ๊ธฐ
ls: ๋๋ ํฐ๋ฆฌ ์์ ์๋ ํ์ผ ๋ณด์ด๊ธฐ
ls -al: ํ์ผ์ ์ฌ์ฉ๊ถํ๊น์ง ๊ฐ์ด ๋ณด๊ธฐ
vi: ํธ์ง๊ธฐ ๋ช
๋ น์ด
์ผ๋จ ๋๋ JavaStudy๋ผ๋ ํด๋ ์์ Example01 ํด๋์ HelloWorld.java๋ผ๋ ํ์ผ์ ๋ง๋ค์ด๋ณด๋ ค๊ณ ํ๋ค.
$mkdir JavaStudy : JavaStudy ๋ผ๋ ๋๋ ํฐ๋ฆฌ ์์ฑ
$cd JavaStudy : JavaStudy ๋๋ ํฐ๋ฆฌ๋ก ๊ฒฝ๋ก ์ด๋ (Tabํค๋ฅผ ๋๋ฅด๋ฉด ์ผ๋ถ๋ง ์ ์ด๋ ์๋์์ฑ๋๋ค)
$mkdir Example01 : Example01 ์ด๋ผ๋ ๋๋ ํฐ๋ฆฌ ์์ฑ
$ls : ํ์ฌ ์๋ JavaStudy์ ์๋ ํ์ผ๊ณผ ๋๋ ํฐ๋ฆฌ ํ์ธ
$cd Example01 : Example01 ๋๋ ํฐ๋ฆฌ๋ก ์ด๋
$vi HelloWorld.java : HelloWorld.java ๋ผ๋ ํ์ผ ์์ฑ๊ทธ๋ฆฌ๊ณ HelloWorld.java์ ์๋์ ๊ฐ์ ๊ธฐ๋ณธ์ ์ธ ์ฝ๋๋ฅผ ์
๋ ฅํ๊ณ ์ ์ฅํ์๋ค.
์ด์ ํ์ผ์ ์ปดํ์ผ์ ํ๋ฉด ๋๋๋ฐ, ํธ์์ JavaStudy์ classes๋ผ๋ ํด๋๋ฅผ ๋ง๋ค์ด ๊ฑฐ๊ธฐ๋ค๊ฐ ์ปดํ์ผ์ ํ๊ฒ ๋ค.
์ปดํ์ผํ๋ ๊ธฐ๋ณธ ๋ช
๋ น์ด๋ $javac ํ์ผ ์ด๋ฆ ์ธ๋ฐ, ๋ ํ์ฌ ์์น๊ฐ ์๋ ๋ค๋ฅธ ํด๋์ ์ปดํ์ผ์ ํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๊ทธ ์ฌ์ด์ -d ์ํ๋ ๋๋ ํฐ๋ฆฌ๋ฅผ ์
๋ ฅํ์๋ค.
$javac -d ../classes/ HelloWorld.java : HelloWorld.java ๋ผ๋ ํ์ผ์ ์ปดํ์ผ์ ํ ๊ฑด๋ฐ, ์ ์ฅ ์์น๋ ํ์ฌ ์์น์์ ํ๋ ์ด์ ์ผ๋ก ๊ฐ์(..) classes๋ผ๋ ๋๋ ํฐ๋ฆฌ์ ์ ์ฅ
์ค์ ๋ก ํ์ธ์ ํด๋ณด๋ฉด classes ๋ผ๋ ๋๋ ํฐ๋ฆฌ๊ฐ ์๊ฒผ๊ณ , ๊ทธ ์์ ์ปดํ์ผ๋ HelloWorld.class ๊ฐ ์์ฑ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
์ด ํ์ผ์ ์คํํ๋ ๋ฒ์ ๊ทธ๋ฅ java ํ์ผ๋ช ์ ์ ์ผ๋ฉด ๋๋ค.
'๐ฅ๏ธ > Linux & macOS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Linux] ์ฐ๋ถํฌ crontab ์ค์ผ์ค ๊ด๋ฆฌ (0) | 2023.05.19 |
---|---|
[Linux] ๋ฆฌ๋ ์ค ๊ฐ๋จํ ์ญ์ฌ (0) | 2023.04.19 |
[Linux] ์ฐ๋ถํฌ Tomcat ์ค์น + ๊ฐ์ํธ์คํ ์ค์ (0) | 2023.03.31 |
[Linux] ์ฐ๋ถํฌ Apache ์ค์น (0) | 2023.03.31 |
[Linux] ์ฐ๋ถํฌ ์ค์นํ๊ณ ํด์ผ ํ ๊ธฐ๋ณธ ์ค์ ๋ค (0) | 2023.03.30 |