Matlabハングアップ問題の対処
Intel Skylake-X architecture(i9-7940X) + Java(Matlab default) + Matlab の相性は良くないようで、MATLAB内のJavaVMのバージョンが古いことが原因でハングアップしてしまいます(おそらくIcelake-Xだけの相性問題)解決策としては、Matlab内蔵Javaを使わず、別途Javaの最新版をOracleからダウンロード&インストール、このJAVAをMatlabで使えるように設定変更することで問題を回避することができます。
環境
- ハードウェア: この記事
- OS: Windows 10 Professional
- Matlab 64bit: 2018a, 2018b, 2019a に組み込まれているJavaで問題が発生します。
- インストールするJava: Version 8 Update 221 (64bit) (このバージョン以上でも良いかと)
Java のダウンロード
java.com からダウンロードできますが、ダウンロードボタンをクリックすると 32bit版がダウンロードされることがあります(はまりました)。ダウンロードページの最後にある ‘See all Java downloads’ で、自分がダウンロードするJavaが 64bitであることをしっかり確認しておきましょう。
ダウンロードが完了したら、そのままインストールするだけです。そのとき、インストールフォルダをメモしておきましょう。 後でシステムの環境変数であるMATLAB_JAVAをこのpathで上書きします。
ダウンロードは JRE(Runtime)でもJDKでもどちらでもよいですが、ここではJREで進めます。
環境変数の設定
環境変数の変更はマイコンピュータのプロパティから行いますが、ユーザー変数(ログイン中のユーザーだけ)とシステム変数(全ユーザーに影響を与える)のどちらの設定を変えるか選ぶことができます。ここでは、システム側を変更して全ユーザーに対して影響を与えるような変更を行います。
- JAVA_HOME : これはJavaをインストールしたフォルダを示しています(変更しません)
- MATLAB_JAVA : MATLABが使用するJavaのバイナリを示しています。通常、MatlabはこのディレクトリにあるJAVAを使っています。(今回変更します)
変更作業は簡単です。JAVA_HOMEをダブルクリックして、ドライブ名から始まるテキストをすべてコピーしてください。Cancelして、次にMATLAB_JAVAをダブルクリックして先ほどコピーしたテキストへ書き換えます。これでMATLABは、MATLAB_JAVAで指定したフォルダにあるJAVAを参照することになり、Skylake-Xで発生していたハングアップする問題は解消されます。
元へ戻すには、最初にMATLAB_JAVAで定義されていた場所(Matlabのフォルダ内)へ書き戻してください。
バージョンの確認方法
version -java
インストールしてセットアップしたバージョンが表示されれば成功です。