こないだ買ったクローリングハック本のサンプルコードがJavaだったのでJavaをコンパイルして試せる環境がほしい。
RaspberrPi3 に Java環境を構築することにする。
teratail.com
$ sudo apt-get -y install openjdk-8-jdk
$ java -version
$ /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
$ mkdir -p JAVA/src
$ cd JAVA
$ mkdir class
$ sudo apt-get -y install tree
$ tree --charset=c
testソースを記述。
$ cd src/
1行目の class TestJava という名前(クラス名)を覚えておく。
コンパイルする。
$ javac -d ../class TestJava.java
classフォルダの中に自動で拡張子.classのファイルができた(先ほど覚えたクラス名で自動生成されるらしい)。
コンパイルしたファイル(バイナリ)を実行してみる。
classの入っているPATH(クラスパス=cp)を指定して実行する。TestJavaには拡張子はつけない。
$ java -cp ../class TestJava
初めてのjavaファイルの実行が成功した。
packageで実行してみる。
またclassフォルダの中に自動で.classファイルができている。なるほど。Javaの仕組みはだいたい覚えた。
長ったらしいというけどJavaいいな。分かりやすい。
実行してみる。クラスパスの指定はこの解説が丁寧でいい。
bashに慣れてるとかえって間違いやすそう。
$ java -cp 相対パスでclassフォルダを指定 パッケージフォルダ名.Javaファイル名(拡張子.classは付けない)
$ java -cp ../class/ pack1.TestJava
なるほど覚えた。
複数クラスを作る。コメントは自分なり理解。
複数ファイルを同時にコンパイルする。
$ javac -d ../../class/ TestJava.java TestJava2.java
ありゃ。エラーになった。
呼び出し元のファイルをコンパイルしてから呼び出すファイルのコンパイル
$ javac -d ../../class TestJava.java
$ javac -d ../../class -cp ../../class TestJava2.java
やっぱエラーになる。また今度試す。
Javaのコンパイルはだいたい分かったので、次回は冒頭書籍にあるクローリングのコードをコンパイルしてみる。