java.library.path
に含めないように変更していましたが、 この変更を巻き戻し、 バージョン 1.6.2 以前と同じように JDKjava.library.path
に含めるようにしました。これにより、 一部の環境で発生していた UnsatisfiedSERVERVM
を指定した場合に bin-l
を追加しました。CD_APPDIR
を追加しました。この拡張フラグを指定することによって、 システムプロパティー user.dir
が実行ファイルのあるディレクトリーで初期化されます。Unicode ビルドへ変更しました。
起動時の引数に Unicode 固有の文字が使用できるようになりました。Java 標準の java
コンソールのコードページに合わせて自動的に出力文字コードが変わるようになりました。この機能は NOENCODINGFIX
拡張フラグを指定することで無効にできます。
メインクラスのロードに失敗したときに詳細メッセージとスタックトレースが表示されるようになりました。
拡張子.jar の関連付けをレジストリから参照して Java
GUI アプリケーション既定のアイコンをデューク君に変更しました。
今後の Java で Pack200 廃止が予定されているため、 exewrap の Pack200 圧縮機能を廃止しました。既存の Pack200 圧縮された実行ファイルは将来の Java 実行環境で実行できなくなる可能性があります。
exewrap 既定のログ出力機能で (アクセス拒否等の) 例外が発生しても抑制するようにしました。また、 アプリケーションディレクトリにログが出力できない場合、 javaC:¥Users
等になります。
クラスのロード元を示す CONTEXT_PATH を URL エンコードするようにしました。これにより、 Java
プロセス開始時間を保持するシステムプロパティ java
を協定世界時 (UTC) に変更しました。
Java12 実行環境で Archived non-system classes are disabled
という警告メッセージが表示される問題を改善しました。
Java 実行環境を PATH 環境変数からも探索するようにしました。優先順位は以下の通りです。
32 ビット OS で JRE が見つからないバグを修正しました。
クラスの重複判定に失敗するバグを修正しました。
デスクトップ ・ ブリッジ UWP 化に対応しました。Java アプリを Microsoft ストアで配布できるようになりました。
Jar ファイル内のエントリーが重複している場合、 日付のもっとも新しいものだけを取り込むようにしました。
ユーザーアカウント制御(UAC)の実行レベルを指定するオプション -P
を追加しました。
JRE 検索機能で JDK9 以降のディレクトリ構成に対応しました。(JDK9 は JDK8 までとはディレクトリ構成が変わっています。)
jdk
で始まるディレクトリも検出対象にするようにしました。Java
Java
リフレクションを使わずに Java
ウィルス対策ソフトのウィルス誤検出対策としてリソース保持の構成を変更しました。
その他、 細かいバグ修正をおこなっています。
Java 9 対応。
java
が廃止されたので外部ライブラリを java
で指定するように変更しました。
Java 9 で不正なリフレクション操作が警告される (将来的には禁止される) ようになったのでシステム ・ クラスローダーの置き換えを廃止しました。
minor
と build
の上位ビットが欠落するバグを修正しました。ロードされるクラスに java
を設定するようにしました。
ターゲットバージョン指定が正しく機能しないバグを修正しました。たとえば、 Java 8u40 以上をターゲットにする場合は -t 1.8.0.40
を指定します。
出力ファイル名に拡張子が含まれていないとクラッシュするバグを修正しました。
実行ファイル名を Visual
Pack200 圧縮処理が復帰せずにフリーズしてしまうバグを修正しました。
出力ディレクトリが存在しない場合に再帰的にディレクトリを作成するようにしました。
サービスアプリケーションを SCM 外から実行した場合にサービス開始 ・ 停止メッセージが出力されないようにしました。
サービスアプリケーションを SCM 外から実行した場合に適用される VM 引数を個別に設定できるようにしました。
パッケージの spec
, spec
, spec
, impl
, impl
, impl
をマニフェストファイルから設定するようにしました。
プロセスの環境変数を設定するユーティリティークラス exewrap
を追加しました。
このバージョンから対象 JRE のバージョンを 1.2 以上 から 1.5 以上 へ変更しました。
一部のウィルス対策ソフトウェアのヒューリスティック検出で exewrap
がウィルスとして誤検出されてしまう問題へ対処しました。
JRE 縮小機能を実験的に追加しました。
メインクラスを指定するオプション -M
を追加しました。
JRE 縮小機能を使用するためのトレースログを出力するオプション -T
を追加しました。
アプリケーションと同じ場所にある JRE を検索しないようにする拡張フラグ NOSIDEBYSIDE
を追加しました。
スレッドでキャッチされない例外が発生しても無視してアプリケーション実行を継続する拡張フラグ IGNORE_UNCAUGHT_EXCEPTION
を追加しました。
jre
フォルダだけでなく jre で始まるフォルダも JRE 検索対象になりました。これにより、 jre1.8.0_40
のようなバージョン付きフォルダが JRE 検索の対象になります。
外部ライブラリディレクトリ( lib
)のサブディレクトリも自動的に外部ライブラリディレクトリとして追加されるようになりました。
複数の VM 引数を指定した場合にアプリケーションがクラッシュする不具合を修正しました。
-g
を付けて x64 アプリケーションを生成した場合にアプリケーションがクラッシュする不具合を修正しました。C ランタイムをスタティックリンクからダイナミックリンクに変更しました。
引数バッファを破壊することがある不具合を修正しました。
x64 アーキテクチャ (64-bit) の実行ファイルを生成できるようになりました。プログラムを 64 ビット JRE で実行することができます。
exewrap
Windows サービスでイベントログに出力するための Logger を追加しました。標準出力、 標準エラー出力を使用せずに明示的なイベントログ出力が可能になります。
依存 JAR ライブラリのディレクトリを指定するためのオプション -L
を追加しました。
64 ビット Windows で Java 実行環境を正しく検出できない不具合を修正しました。(ただし、 exewrap はまだ 64 ビット JRE に対応していません。64 ビット Windows に 32 ビット JRE をインストールしておく必要があります。)
拡張フラグ SHARE
を指定してプロセスを共有した場合に、 Get
関数、 Get
関数等で誤った JVM 環境( JNIEnv*
)が使われる不具合を修正しました。
プロセス共有時の排他制御に関連する不具合を修正しました。
プロセス共有時のプロセス間通信の実装を DDE から共有メモリに変更しました。この変更に伴い拡張フラグ DDE_CONNECT
の名前を SHARE
に変更しました。
Client VM / Server VM を選択する拡張フラグを追加しました。
Pack200 アーカイブ形式を無効にするオプション -2
を追加しました。
EXE ファイルのバージョン情報に会社情報を埋め込むためのオプション -C
を追加しました。
EXE ファイルのバージョン情報に製品名を埋め込むためのオプション -P
を追加しました。
EXE ファイルのバージョン情報に製品バージョンを埋め込むためのオプション -V
を追加しました。