min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

RaspberryPi 3 に Java環境を構築する

f:id:min117:20191216225212p:plain

こないだ買ったクローリングハック本のサンプルコードがJavaだったのでJavaコンパイルして試せる環境がほしい。

min117.hatenablog.com

 

RaspberrPi3 に Java環境を構築することにする。
teratail.com

 

$ sudo apt-get -y install openjdk-8-jdk

f:id:min117:20191216223651p:plain

f:id:min117:20191216225409p:plain

 

$ java -version

f:id:min117:20191216230501p:plain

 

qiita.com

 

$ /usr/bin/which java

$ ls -l /usr/bin/java

$ ls -l /etc/alternatives/java

$ ls -l /usr/lib/jvm/java-8-oracle/jre/bin/java

f:id:min117:20191216230712p:plain

 

apt-cache search oracle jdk

f:id:min117:20191216231038p:plain

 

qiita.com

 

$ mkdir -p JAVA/src

$ cd JAVA

$ mkdir class

f:id:min117:20191216231536p:plain

 

$ sudo apt-get -y install tree

f:id:min117:20191216231624p:plain

 

$ tree --charset=c

f:id:min117:20191216231724p:plain

 

testソースを記述。

$ cd src/

$ vim TestJava.java

f:id:min117:20191216231802p:plain

 

1行目の class TestJava という名前(クラス名)を覚えておく。

f:id:min117:20191216231931p:plain

 

コンパイルする。

f:id:min117:20191216232016p:plain

$ javac -d ../class TestJava.java

f:id:min117:20191216232121p:plain

classフォルダの中に自動拡張子.classのファイルができた(先ほど覚えたクラス名で自動生成されるらしい)。

f:id:min117:20191216232231p:plain

 

コンパイルしたファイル(バイナリ)を実行してみる

 

classの入っているPATH(クラスパス=cp)を指定して実行する。TestJavaには拡張子はつけない

$ java -cp ../class TestJava

f:id:min117:20191216232647p:plain

初めてのjavaファイルの実行が成功した。

 

 

 

 

 

packageで実行してみる。

f:id:min117:20191216232827p:plain

f:id:min117:20191216233106p:plain

f:id:min117:20191216233225p:plain

f:id:min117:20191216233305p:plain

f:id:min117:20191216233501p:plain

またclassフォルダの中に自動で.classファイルができている。なるほど。Javaの仕組みはだいたい覚えた。

f:id:min117:20191216235207p:plain

長ったらしいというけどJavaいいな。分かりやすい。

 

実行してみる。クラスパスの指定はこの解説が丁寧でいい。

f:id:min117:20191216234628p:plain

bashに慣れてるとかえって間違いやすそう。

 

$ java -cp 相対パスでclassフォルダを指定 パッケージフォルダ名.Javaファイル名(拡張子.classは付けない)

 

$ java -cp ../class/ pack1.TestJava  

f:id:min117:20191216234752p:plain

なるほど覚えた。

 

複数クラスを作る。コメントは自分なり理解。

$ vim TestJava.java

f:id:min117:20191217002358p:plain 

f:id:min117:20191217065738p:plain

 

$ vim TestJava2.java

f:id:min117:20191217002501p:plain

f:id:min117:20191217002744p:plain

f:id:min117:20191217002901p:plain

 

複数ファイルを同時にコンパイルする。

$ javac -d ../../class/  TestJava.java TestJava2.java

f:id:min117:20191217003406p:plain

ありゃ。エラーになった。

 

呼び出し元のファイルをコンパイルしてから呼び出すファイルのコンパイル

$ javac -d ../../class TestJava.java

$ javac -d ../../class -cp ../../class TestJava2.java

f:id:min117:20191217003605p:plain

やっぱエラーになる。また今度試す。

 

Javaコンパイルはだいたい分かったので、次回は冒頭書籍にあるクローリングのコードをコンパイルしてみる。

f:id:min117:20191216235724p:plain

 

f:id:min117:20191216235801p:plain