RM-BLOG

IT系技術職のおっさんがIT技術とかライブとか日常とか雑多に語るブログです。* 本ブログに書かれている内容は個人の意見・感想であり、特定の組織に属するものではありません。/All opinions are my own.*

【コマンドラインメモ】JAVA(ふつう)

javac *.java 拡張子javaのファイルを全コンパイルする。 これはワイルド―カード(*.java)で指定しているからで、 単一ファイルだけコンパイルするならAAA.java等ファイル単品を指定する。 javac -classpath ~ *.java クラスパス指定して全コンパイルする。 外部jarのクラスを使ったソースのコンパイル等に使用。 classpathの書き方はWindowsUNIX系で異なる Windows(各パスをセミコロン";"で繋げる。環境変数の参照は%で囲う)  -classpath %JAVA_HOME%;%CD%\test.jar; *.java UNIX系(各パスをコロン":"で繋げる。環境変数の参照は$を頭に付ける)  -classpath $JAVA_HOME:`pwd`/test.jar: *.java javac -encoding UTF-8 *.java ソースファイルのエンコーディングを指定する。これはUTF-8。 未指定だとシステム依存になる。WindowsだとMS932(Shift-JIS)だしUNIXだとUTF-8 javac *.java -d .\classes\ -dオプションでコンパイル後のクラスファイルの出力先を指定できる。 この例だとカレントフォルダ配下の「classes」フォルダ内に出力する。 ちなみにWindowsの例。UNIXだと「javac *.java -d ./classes/」となる。 java AAA AAA.classを実行する。 java -Xmx256M AAA javaVMが使用するメモリ最大使用量を指定する。この例だと256M。 未指定だと64Mになる。 あまり無茶なプログラム構造でない限り基本的にこれで十分。 java -version javaのバージョンを表示する。 java -verbose AAA javac -verbose AAA.java javaないしjavac実行時の細かい流れを一律表示してくれる。 どう頑張ってもパスが通らないとか、コンパイルエラーがなくならない、 とかのときになんとなく使用する程度。 情報量が多すぎてそこまで必要としない。 java -Dtest.param=aaa AAA -Dでjava実行時にjavaVMに引き渡すシステムパラメータを指定できる。 -D[KEY]=[VALUE]の形。 渡したパラメータはjava内でSystem.getPropertyで取り出せる。 この例だとAAA.java内で  String str = System.getProperty("test.param");  System.out.println(str); で「aaa」が標準出力できる。