Skip to main content

IntelliJ IDEAでJShellを使えるようにした

IntelliJ IDEA パーフェクトガイド

新品価格
¥3,278から
(2020/2/23 20:28時点)


JShellが使えるとJavaで対話的にコードが書けると知った
ちょっと動作確認したいときに使えそうなので使えるようにしてみた


・最初はなぜかエラー
Tool→JShell Consoleを実行すると以下のエラーがでる
エラーになる機能つけておいかないでよ・・・

エラー: メイン・クラスcom.intellij.execution.jshell.frontend.Mainを初期化できません
原因: java.lang.NoClassDefFoundError: jdk/jshell/Snippet$Status

・エラーの解決策
解決策は以下
Don’t use JetBrains Runtime for development, change your project JDK to a real JDK in the Project Structure dialog.
https://intellij-support.jetbrains.com/hc/en-us/community/posts/360004959980-JShell-won-t-run-missing-main-class

・Java11の入れ方
brewでjava11を入れる
https://qiita.com/niwasawa/items/460ccd0fa0041e7a2491

・Java11を指定する
その後Project StructureからJDKのパスを指定するだけ

/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents

これで実行できるようになりました
今後は簡単な動作確認はJShellでできるようになりましたとさ

 

・困ったこと
実はJava11だとコマンドラインからAndroidのgradleコマンド叩くと以下のエラーがでるwwww

Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException

なのでコマンドラインではAndroidStudioのjdkを通しておく必要がある

export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home

関連記事:

Pocket