Java_Wrapper (https://ja.osdn.net/projects/javaoncygwin/) を利用して、MSYS2やCygwinでJavaを使う環境を整備します。
インストール先
インストール先は次の通りとします。
/usr/local/bin
java_wrapperをダウンロード
公式サイト からJava_Wrapperをインストール先フォルダへダウンロードします。
WindowsにJavaのパスを通しておく。
次の通りに環境変数にパスを通しておきます。
- JAVA_HOME = JDKがインストールされているフォルダ
java_wrapperを編集する
ダウンロードしたjava_wrapperはシェルスクリプトです。
WindowsのJavaは文字コードがcp932(Shift-JIS)でエンコーディングされているので、パスを通して実行すると、MSYSやCygwin上では当然、文字化けしてしまいます。
ですので次の通りに直しておきます。
-exec "$PROGRAM" $ARGS
+exec "$PROGRAM" $ARGS 2>&1 | iconv -f cp932 -t utf-8
シンボリックリンクを作成する
インストール先フォルダへ移動した後、次のコマンドを打ちます。
$ java_wrapper createsymlinks
これで、%JAVA_HOME%\bin 内にあるすべての実行ファイルがjava_wrapperを通して実行されるようになりました。
実行してみる
実際に実行してみます。
$ java
使用方法: java [-options] class [args...]
(クラスを実行する場合)
または java [-options] -jar jarfile [args...]
(jarファイルを実行する場合)
optionsには次のものがあります。
-d32 使用可能な場合は32ビットのデータ・モデルを使用する
-d64 使用可能な場合は64ビットのデータ・モデルを使用する
-server "server" VMを選択する場合
デフォルトVMはserverです.
-cp <ディレクトリおよびzip/jarファイルのクラス検索パス>
-classpath <ディレクトリおよびzip/jarファイルのクラス検索パス>
クラス・ファイルを検索するディレクトリ、
JARアーカイブおよびZIPアーカイブの;で区切られたリストです。
-D<name>=<value>
システム・プロパティを設定する
-verbose:[class|gc|jni]
詳細な出力を行う
-version 製品バージョンを出力して終了する
-version:<value>
警告: この機能は非推奨であり、詳細のリリースで
廃止されます。
指定したバージョンを実行に必須にする
-showversion 製品バージョンを出力して続行する
-jre-restrict-search | -no-jre-restrict-search
警告: この機能は非推奨であり、詳細のリリースで
廃止されます。
ユーザーのプライベートJREをバージョン検索に含める/除外する
-? -help このヘルプ・メッセージを出力する
-X 非標準オプションに関するヘルプを出力する
-ea[:<packagename>...|:<classname>]
-enableassertions[:<packagename>...|:<classname>]
指定した粒度でアサーションを有効にする
-da[:<packagename>...|:<classname>]
-disableassertions[:<packagename>...|:<classname>]
指定した粒度でアサーションを無効にする
-esa | -enablesystemassertions
システム・アサーションを有効にする
-dsa | -disablesystemassertions
システム・アサーションを無効にする
-agentlib:<libname>[=<options>]
ネイティブ・エージェント・ライブラリ<libname>をロードする。例: -agentlib:hprof
-agentlib:jdwp=helpと-agentlib:hprof=helpも参照
-agentpath:<pathname>[=<options>]
フルパス名でネイティブ・エージェント・ライブラリをロードする
-javaagent:<jarpath>[=<options>]
Javaプログラミング言語エージェントをロードする。java.lang.instrumentを参照
-splash:<imagepath>
指定したイメージでスプラッシュ画面を表示する
詳細はhttp://www.oracle.com/technetwork/java/javase/documentation/index.htmlを参照してください。
文字化けすることなくJavaを呼び出すことができました。
$ javac
使用方法: javac <options> <source files>
使用可能なオプションには次のものがあります。
-g すべてのデバッグ情報を生成する
-g:none デバッグ情報を生成しない
-g:{lines,vars,source} いくつかのデバッグ情報のみを生成する
-nowarn 警告を発生させない
-verbose コンパイラの動作についてメッセージを出力する
-deprecation 非推奨のAPIが使用されているソースの場所を出力する
-classpath <path> ユーザー・クラス・ファイルおよび注釈プロセッサを検索する位置を指定する
-cp <path> ユーザー・クラス・ファイルおよび注釈プロセッサを検索する位置を指定する
-sourcepath <path> 入力ソース・ファイルを検索する位置を指定する
-bootclasspath <path> ブートストラップ・クラス・パスの場所をオーバーライドする
-extdirs <dirs> インストール済拡張機能の場所をオーバーライドする
-endorseddirs <dirs> 推奨規格パスの場所をオーバーライドする
-proc:{none,only} 注釈処理やコンパイルを実行するかどうかを制御します。
-processor <class1>[,<class2>,<class3>...] 実行する注釈プロセッサの名前。デフォルトの検出処理をバイパス
-processorpath <path> 注釈プロセッサを検索する位置を指定する
-parameters メソッド・パラメータにリフレクション用のメタデータを生成します
-d <directory> 生成されたクラス・ファイルを格納する位置を指定する
-s <directory> 生成されたソース・ファイルを格納する場所を指定する
-h <directory> 生成されたネイティブ・ヘッダー・ファイルを格納する場所を指定する
-implicit:{none,class} 暗黙的に参照されるファイルについてクラス・ファイルを生成するかどうかを指定する
-encoding <encoding> ソース・ファイルが使用する文字エンコーディングを指定する
-source <release> 指定されたリリースとソースの互換性を保つ
-target <release> 特定のVMバージョン用のクラス・ファイルを生成する
-profile <profile> 使用されているAPIが指定したプロファイルで使用可能かどうかを確認します
-version バージョン情報
-help 標準オプションの概要を出力する
-Akey[=value] 注釈プロセッサに渡されるオプション
-X 非標準オプションの概要を出力する
-J<flag> <flag>を実行システムに直接渡す
-Werror 警告が発生した場合にコンパイルを終了する
@<filename> ファイルからの読取りオプションおよびファイル名
javacも文字化けすることなく呼び出せました。