新品価格 |
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