【Java11】04 Javaの開発環境構築 VScode設定編

2020年4月24日作成

Visual Studio CodeはMicrosoftが開発したプログラム開発環境を備えたエディタです。2015年に初版が公開されました。

UIは典型的なGUIエディタそのもので拡張機能を導入することで手軽にデバッグができるようになります。Javaについてもショートカット1つで一気にビルド&デバッグができ、とても便利です。

以下、VScodeのセッティングについて記します。

1. 拡張機能の導入

拡張機能としてJava Extension Packを導入する。Maven for Javaなど6つの拡張機能がパックになっている。
Code Runnerも必須。これでビルド&デバッグが同時にできるようになる。

2. Javaの場所をsettings.jsonに追記

“java.home”: “/Library/Java/JavaVirtualMachines/jdk-11.0.7.jdk/Contents/Home”
なおsettings.jsonは下図右上のアイコンをクリックすると編集できます。使い始めた当初はなかなか気がつかなかったです。

【Java11】03 Javaの開発環境構築 Apache POI導入編

2020年4月24日作成

Apache POIはMicrosoft Office形式のファイルを読み書きするためのJavaライブラリです。

公式ページからダウンロードできます。

解凍したフォルダは適当な場所に置きます。中のjarファイルについては全てCLASSPATHを通すことをお勧めします。Mavenでプロジェクトを作成した際、pom.xmlに依存関係を追記する方法もあるようです。

私の.bash_profileの該当箇所は最後に記しておきます。

これまで.bash_profile編集だけはLinux導入時の名残でずっとvimを使ってきましたが、今回のJava導入でVScodeに完全に切り替えました。要はエディタだったら秀丸でもmimikakiでもなんでもいいんです。刷り込みというのは恐ろしいものです。

ただ1日に数百行あるいは1000行以上コードを書くような職業プログラマにとってはviやvimは強力な武器になるであろうことは私なりに想像できます。

————————————————–
export CLASSPATH=/usr/local/poi-4.1.2/poi-4.1.2.jar:$CLASSPATH
export CLASSPATH=/usr/local/poi-4.1.2/poi-examples-4.1.2.jar:$CLASSPATH
export CLASSPATH=/usr/local/poi-4.1.2/poi-excelant-4.1.2.jar:$CLASSPATH
export CLASSPATH=/usr/local/poi-4.1.2/poi-ooxml-4.1.2.jar:$CLASSPATH
export CLASSPATH=/usr/local/poi-4.1.2/poi-ooxml-schemas-4.1.2.jar:$CLASSPATH
export CLASSPATH=/usr/local/poi-4.1.2/poi-scratchpad-4.1.2.jar:$CLASSPATH
export CLASSPATH=/usr/local/poi-4.1.2/lib/activation-1.1.1.jar:$CLASSPATH
export CLASSPATH=/usr/local/poi-4.1.2/lib/commons-codec-1.13.jar:$CLASSPATH
export CLASSPATH=/usr/local/poi-4.1.2/lib/commons-collections4-4.4.jar:$CLASSPATH
export CLASSPATH=/usr/local/poi-4.1.2/lib/commons-compress-1.19.jar:$CLASSPATH
export CLASSPATH=/usr/local/poi-4.1.2/lib/commons-logging-1.2.jar:$CLASSPATH
export CLASSPATH=/usr/local/poi-4.1.2/lib/commons-math3-3.6.1.jar:$CLASSPATH
export CLASSPATH=/usr/local/poi-4.1.2/lib/jaxb-api-2.3.1.jar:$CLASSPATH
export CLASSPATH=/usr/local/poi-4.1.2/lib/jaxb-core-2.3.0.1.jar:$CLASSPATH
export CLASSPATH=/usr/local/poi-4.1.2/lib/jaxb-impl-2.3.2.jar:$CLASSPATH
export CLASSPATH=/usr/local/poi-4.1.2/lib/junit-4.12.jar:$CLASSPATH
export CLASSPATH=/usr/local/poi-4.1.2/lib/log4j-1.2.17.jar:$CLASSPATH
export CLASSPATH=/usr/local/poi-4.1.2/lib/SparseBitSet-1.2.jar:$CLASSPATH
export CLASSPATH=/usr/local/poi-4.1.2/ooxml-lib/curvesapi-1.06.jar:$CLASSPATH
export CLASSPATH=/usr/local/poi-4.1.2/ooxml-lib/xmlbeans-3.1.0.jar:$CLASSPATH
————————————————–

【Java11】02 Javaの開発環境構築 バージョン管理編

2020年4月24日作成

備忘録として残しておきます。

1. Javaのバージョン確認

1.1 ターミナルにコマンド入力
まずMacに入っているJavaのバージョンを確認

入力
————————————————–
/usr/libexec/java_home -V
————————————————–

出力
————————————————–
Matching Java Virtual Machines (3):
13.0.2, x86_64: “Java SE 13.0.2” /Library/Java/JavaVirtualMachines/jdk-13.0.2.jdk/Contents/Home
11.0.7, x86_64: “Java SE 11.0.7” /Library/Java/JavaVirtualMachines/jdk-11.0.7.jdk/Contents/Home
1.8.0_251, x86_64: “Java SE 8” /Library/Java/JavaVirtualMachines/jdk1.8.0_251.jdk/Contents/Home
————————————————–

11と13はオラクル社のサイトからインストーラをダウンロードして導入しました。
今は長期サポート版の11を使っています。

1.1.1 バージョンの切り替え方法
下記内容を.bash_profileに追記

————————————————–
export JAVA_HOME=”$(/usr/libexec/java_home -v 11.0.7)”
export PATH=”/usr/bin:${PATH}:${JAVA_HOME}”
————————————————–

1.1.2 切り替え後のバージョン確認

入力
————————————————–
java –version
————————————————–

出力
————————————————–
java 11.0.7 2020-04-14 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.7+8-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.7+8-LTS, mixed mode)
————————————————–

1.2 macのシステム環境設定でも確認可能
Java ー Javaコントロールパネル ー 一般 ー バージョン情報

※JDK(Java Development Kit)
オラクル社のOracle JDKとオープンソースのOpenJDKがあります。前者は2019年4月から商用では有償となりました。

【Java11】01 Javaの開発環境構築 プロローグ

2020年4月24日作成

JavaでもExcelファイルを扱ったり、スクレイピングをするため開発環境構築に取り組みました。

何度も壁にぶつかりながら、3日ほどでようやくApache POIを使ってExcelファイルの簡単な操作ができるようになりました。

最初は代表的な統合開発環境であるEclipseを導入しましたが、趣味レベルで遊ぶには大掛かりなのでVScode + プロジェクト管理ツールMavenの組み合わせで軽量な環境を作りました。

一度は導入を諦めてC++に走ろうとしたものの、Excelを扱うにはLibXL($199)という有料ライブラリが必要であることを知り、すぐJavaに出戻りました。

C++への挑戦はしばらく先になりそうです。

今回ばかりは本当に諦めかけましたが、落ち着いて少しづづ進めていきなんとかクリアしました。

Excelというソフトに対する思い入れの強さだけで押し切った感じです。

知識面ではLinuxやVBA、Pythonをかじっていなければ、早々に挫折していたでしょう。

モチベーションと最低限の知識が合わさっていないと学習が止まってしまいますね。

段階を踏んでこつこつ取り組むことの大切さを再認識しました。

これからはPythonコードからの移植などにぼちぼち取り組んでいきたいと思います。

[Java] Javaアセンブラ “Jasmin”

Javaアセンブラ “Jasmin”でアセンブラファイルをコンパイルするコマンドです。

java -jar jasmin.jar [Javaアセンブラファイル]

classファイルを逆アセンブラするコマンドは以下の通りです。

javap -c [classファイル]

Hello WorldをJavaアセンブラで書くとこんな感じになります(Jasminのexamplesから)。

.class public examples/HelloWorld
.super java/lang/Object

; standard initializer
.method public <init>()V
   aload_0
   invokenonvirtual java/lang/Object/<init>()V
   return
.end method

.method public static main([Ljava/lang/String;)V
   .limit stack 2

   ; push System.out onto the stack
   getstatic java/lang/System/out Ljava/io/PrintStream;

   ; push a string onto the stack
   ldc "Hello World!"

   ; call the PrintStream.println() method.
   invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V

   ; done
   return
.end method

JASMIN HOME PAGE