9
5

More than 5 years have passed since last update.

Cordova向けにJDKを再インストール

Last updated at Posted at 2018-06-03

少し長くなりますが、お付き合いください。

経緯

ElectronとCordovaを用いて、HTML/CSS/JavaScriptによるマルチプラットフォームなアプリの開発をしたく、環境構築を行っています。
Windows、macOS、iOS向けにテストアプリを作ることができましたが、Android向けを用意する段で躓きました。

起きた問題

JDKのバージョンが古いらしい

Cordovaにてテストアプリを作成後に、iOSの実機テストまで行えました。
Androidのエミュレータでの動作確認 → 実機テストを行いたく、Cordovaにてplatform追加後にcordova run androidしてみたところ、エラー発生で上手く動きません。

エラーメッセージ
CordovaError: Requirements check failed for JDK 1.8 or greater

現環境のJDK(Java Development Kit)のバージョンが古いようです。

環境

  • macOS Sierra 10.12.6 / iMac (Retina 5K, 27-inch, Late 2015)
  • node.js 10.0.0
  • nodebrew 8.9.4
  • npm 6.0.1

調査

JDKのバージョンを調べる。

下記のサイトを参考に、まずはJDKのバージョンを調べてみます。

「Java 6 [Apple版]」のアンインストール
http://www.keyton-co.jp/blog/article/Java6forMacUninstall

macOSのJDKのインストール・更新方法
https://qiita.com/takayamag/items/1469c59370df348240f8

ターミナルで下記を実行します。

$ java -version
結果
java version "10.0.1" 2018-04-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode)

最新版になっています。

さらに下記を実行します。

$ /usr/libexec/java_home -V
結果
Matching Java Virtual Machines (4):
    10.0.1, x86_64:     "Java SE 10.0.1"        /Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home
    1.8.0_172, x86_64:  "Java SE 8"     /Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home
    1.6.0_65-b14-468, x86_64:   "Java SE 6"     /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
    1.6.0_65-b14-468, i386:     "Java SE 6"     /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home

JVMが複数存在しています。
恐らく、JDKのバージョン管理が必要と思われます。
JDKバージョン管理については、下記のような良記事があります。

【2018年版】macでAndroid開発環境を構築するための4つのこと

めんどくさ・・・・・・
(´・ω・`)
じゃなくて、結構たいへんそうです。

前提

先日アップした記事「Node 10.0.0でgulpクラッシュ」のものとはマシンが異なります。
CGや動画制作、デザイン制作用のiMacですが、環境共有のためにこのマシンでも試行錯誤しています。
Adobe CS6のアプリ群を使用するためにJava 6をインストールしていました。

解決

上記の様にJVMが複数存在しているため、管理がなかなか難しそうです。
追々管理ができるようにしていきますが、一旦Javaをすべてアンインストールして、当初の目的を果たします。

Javaの削除

Java 6 [Apple版]をアンインストール

上記サイトを参考にアンインストールします。

Java6パッケージ情報を削除
$ sudo pkgutil --forget com.apple.pkg.JavaForMacOSX107
1.6.0.jdkを削除
$ sudo rm -rf  /Library/Java/JavaVirtualMachines/1.6.0.jdk/
削除を確認
$ ls -ld /Library/Java/JavaVirtualMachines/1.6.0.jdk

ls: /Library/Java/JavaVirtualMachines/1.6.0.jdk: No such file or directoryと返ってくれば削除成功です。

更に確認
$ /usr/libexec/java_home -V
結果
Matching Java Virtual Machines (2):
    10.0.1, x86_64:     "Java SE 10.0.1"        /Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home
    1.8.0_172, x86_64:  "Java SE 8"     /Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home

Java8をアンインストール

$ sudo rm -rf  /Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/
結果を確認
$ ls -ld /Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/

ls: /Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/: No such file or directoryと返ってくれば削除成功です。

更に確認
$ /usr/libexec/java_home -V
結果
Matching Java Virtual Machines (1):
    10.0.1, x86_64:     "Java SE 10.0.1"        /Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home

Java10をアンインストール

$ sudo rm -rf  /Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/
結果を確認
$ ls -ld /Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/

ls: /Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/: No such file or directoryと返ってくれば削除成功です。

更に確認
$ /usr/libexec/java_home -V
結果
Unable to find any JVMs matching version "(null)".
Matching Java Virtual Machines (0):

Default Java Virtual Machines (0):

No Java runtime present, try --request to install.

補足

下記をそれぞれ実行して、ブラウザ、環境設定に絡むパッケージ情報を削除します。

$ sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin 
$ sudo rm -fr /Library/PreferencePanes/JavaControlPanel.prefPane 
$ sudo rm -fr ~/Library/Application\ Support/Java

結果

cordova run androidを実行したところ、

CordovaError: Failed to find 'JAVA_HOME' environment variable. Try setting it manually.

とのエラーに変わりました。
「Javaが無いですよ」ということですので、Javaのインストールから構築開始です。

Javaの再インストール

Java6は一旦保留します。
(※Adobe CS6でのみ使用していることと、直近でCS6アプリ群を使用する予定が無いため)

Java8のインストール

brew cask install java8を実行します。

Cordovaにて

cordova run androidを実行した結果です。

結果
CordovaError: Could not find an installed version of Gradle either in Android Studio,
or on your system to install the gradle wrapper. Please include gradle

Gradle(ビルドツール)が入っていないと・・・

Javaのバージョン問題は解決できましたので、引き続きAndroid開発環境の構築を進めます。

・・・なかなか厄介です。

まとめ

アプリ開発をしない限りは、あまりJavaを意識することはありませんでしたが、改めて掘り下げてみると、マシンの中身が思いの外グチャッとしていました。
見た目上はスッキリしているようでも、あれやこれやと入れたり出したりしているからです。
今回のように根本的に削除して、0から構築し直すという手順は、これからも整理方々キチンと身に付けていかないといけません。

長くなりましたが、最後までお読みいただきありがとうございました。

9
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
5