使用 cordova 构建时无效 JAVA_HOME
Invalid JAVA_HOME when build with cordova
我正在尝试在我的设备上使用 OpenSuse Leap 42.1 中的 cordova 模拟应用程序。
但是,当我尝试使用 cordova run
模拟应用程序时,出现以下错误:
cordova run
Running command: /home/soufraz/Projects/apps/myproject/platforms/android/cordova/run
ERROR: Error: Failed to run "java -version", make sure that you have a JDK installed.
You can get it from: http://www.oracle.com/technetwork/java/javase/downloads.
Your JAVA_HOME is invalid: /usr/lib64/jvm/java-1.8.0-openjdk-1.8.0
ERROR running one or more of the platforms: Error: /home/soufraz/Projects/apps/myproject/platforms/android/cordova/run: Command failed with exit code 2
You may not have the required environment or OS to run this project
我安装了 java 并在 ~/.profile
中设置了路径。
我的环境配置错误是哪个?
下面我的.profile
:
JAVA_HOME=/usr/lib64/jvm/java-1.8.0-openjdk-1.8.0
export JAVA_HOME
ANDROID_HOME=/home/soufraz/Install/android-sdk-linux
export ANDROID_HOME
PATH=$PATH:$ANDROID_HOME:$JAVA_HOME
关于 java 版本的信息:
java -version
openjdk version "1.8.0_60"
OpenJDK Runtime Environment (build 1.8.0_60-b27)
OpenJDK 64-Bit Server VM (build 25.60-b23, mixed mode)
这里是 jvm 文件夹列表:
ls -l
total 28
lrwxrwxrwx 1 root root 24 Nov 12 11:28 java-1.7.0-openjdk -> java-1.7.0-openjdk-1.7.0
drwxr-xr-x 1 root root 6 Nov 12 11:28 java-1.7.0-openjdk-1.7.0
drwxr-xr-x 1 root root 6 Nov 11 17:26 java-1.8.0-openjdk-1.8.0
lrwxrwxrwx 1 root root 21 Nov 11 17:26 jre -> /etc/alternatives/jre
lrwxrwxrwx 1 root root 27 Nov 12 11:28 jre-1.7.0 -> /etc/alternatives/jre_1.7.0
lrwxrwxrwx 1 root root 28 Nov 12 11:28 jre-1.7.0-openjdk -> java-1.7.0-openjdk-1.7.0/jre
lrwxrwxrwx 1 root root 27 Nov 11 17:26 jre-1.8.0 -> /etc/alternatives/jre_1.8.0
lrwxrwxrwx 1 root root 28 Nov 11 17:26 jre-1.8.0-openjdk -> java-1.8.0-openjdk-1.8.0/jre
lrwxrwxrwx 1 root root 29 Nov 11 17:26 jre-openjdk -> /etc/alternatives/jre_openjdk
[编辑] 三层视图树:
tree -L 3
.
├── java-1.7.0-openjdk -> java-1.7.0-openjdk-1.7.0
├── java-1.7.0-openjdk-1.7.0
│ └── jre
│ ├── bin
│ └── lib
├── java-1.8.0-openjdk-1.8.0
│ └── jre
│ ├── bin
│ └── lib
├── jre -> /etc/alternatives/jre
├── jre-1.7.0 -> /etc/alternatives/jre_1.7.0
├── jre-1.7.0-openjdk -> java-1.7.0-openjdk-1.7.0/jre
├── jre-1.8.0 -> /etc/alternatives/jre_1.8.0
├── jre-1.8.0-openjdk -> java-1.8.0-openjdk-1.8.0/jre
└── jre-openjdk -> /etc/alternatives/jre_openjdk
Cordova 需要 JDK
而不是 JRE
,因为它正在检查 javac
。请参阅 check_reqs.js 行 86
。根据您的评论,您是说“在此路径中,JDK
中没有 bin 文件夹 ”,您应该有一个 bin
目录!
你的路径应该是这样的
PATH=$PATH:$ANDROID_HOME/bin:$JAVA_HOME/bin
比
export PATH
在我的具体情况下,我删除并重新安装所有 java 包并添加一个(对于 'instinct'):
我删除了:
java-1_8_0-openjdk
java-1_8_0-openjdk-headless
java-1_8_0-openjdk-plugin
并添加:
java-1_8_0-openjdk
java-1_8_0-openjdk-headless
java-1_8_0-openjdk-plugin
java-1_8_0-openjdk-devel
<<-- 还好我中了
出现主文件夹内的垃圾箱。 javac 和其他东西。
谢谢你们!
对java-X_X_X-openjdk包有点误解。尤其是当您习惯了默认的 Oracle 表示法时。
JDK 部分令人困惑,因为 OpenJDK 是 Java 平台 的开源实现项目,并且不是 JDK - 实际上允许您在 Java 中开发的软件包。
(更精确的信息在这里:http://openjdk.java.net/install/index.html)
TLDR:
java-X_X_X-openjdk 是 Oracle 的 JRE 等价物。
java-X_X_X-openjdk-devel 是 Oracle 的 JDK 等价物。
验证 java & JDK 安装解决了我的问题.. 安装 java & JDK 并尝试..
要构建和 运行 应用程序,您需要为每个目标平台安装 SDK。或者,如果您使用浏览器进行开发,则可以使用不需要任何平台 SDK 的浏览器平台。
检查您是否满足构建平台的要求:
$ cordova requirements
Requirements check results for android:
Java JDK: installed .
Android SDK: installed
Android target: installed android-19,android-21,android-22,android-23,Google Inc.:Google APIs:19,Google Inc.:Google APIs (x86 System Image):19,Google Inc.:Google APIs:23
Gradle: installed
Requirements check results for ios:
Apple OS X: not installed
Cordova tooling for iOS requires Apple OS X
Error: Some of requirements check failed
我正在尝试在我的设备上使用 OpenSuse Leap 42.1 中的 cordova 模拟应用程序。
但是,当我尝试使用 cordova run
模拟应用程序时,出现以下错误:
cordova run
Running command: /home/soufraz/Projects/apps/myproject/platforms/android/cordova/run
ERROR: Error: Failed to run "java -version", make sure that you have a JDK installed.
You can get it from: http://www.oracle.com/technetwork/java/javase/downloads.
Your JAVA_HOME is invalid: /usr/lib64/jvm/java-1.8.0-openjdk-1.8.0
ERROR running one or more of the platforms: Error: /home/soufraz/Projects/apps/myproject/platforms/android/cordova/run: Command failed with exit code 2
You may not have the required environment or OS to run this project
我安装了 java 并在 ~/.profile
中设置了路径。
我的环境配置错误是哪个?
下面我的.profile
:
JAVA_HOME=/usr/lib64/jvm/java-1.8.0-openjdk-1.8.0
export JAVA_HOME
ANDROID_HOME=/home/soufraz/Install/android-sdk-linux
export ANDROID_HOME
PATH=$PATH:$ANDROID_HOME:$JAVA_HOME
关于 java 版本的信息:
java -version
openjdk version "1.8.0_60"
OpenJDK Runtime Environment (build 1.8.0_60-b27)
OpenJDK 64-Bit Server VM (build 25.60-b23, mixed mode)
这里是 jvm 文件夹列表:
ls -l
total 28
lrwxrwxrwx 1 root root 24 Nov 12 11:28 java-1.7.0-openjdk -> java-1.7.0-openjdk-1.7.0
drwxr-xr-x 1 root root 6 Nov 12 11:28 java-1.7.0-openjdk-1.7.0
drwxr-xr-x 1 root root 6 Nov 11 17:26 java-1.8.0-openjdk-1.8.0
lrwxrwxrwx 1 root root 21 Nov 11 17:26 jre -> /etc/alternatives/jre
lrwxrwxrwx 1 root root 27 Nov 12 11:28 jre-1.7.0 -> /etc/alternatives/jre_1.7.0
lrwxrwxrwx 1 root root 28 Nov 12 11:28 jre-1.7.0-openjdk -> java-1.7.0-openjdk-1.7.0/jre
lrwxrwxrwx 1 root root 27 Nov 11 17:26 jre-1.8.0 -> /etc/alternatives/jre_1.8.0
lrwxrwxrwx 1 root root 28 Nov 11 17:26 jre-1.8.0-openjdk -> java-1.8.0-openjdk-1.8.0/jre
lrwxrwxrwx 1 root root 29 Nov 11 17:26 jre-openjdk -> /etc/alternatives/jre_openjdk
[编辑] 三层视图树:
tree -L 3
.
├── java-1.7.0-openjdk -> java-1.7.0-openjdk-1.7.0
├── java-1.7.0-openjdk-1.7.0
│ └── jre
│ ├── bin
│ └── lib
├── java-1.8.0-openjdk-1.8.0
│ └── jre
│ ├── bin
│ └── lib
├── jre -> /etc/alternatives/jre
├── jre-1.7.0 -> /etc/alternatives/jre_1.7.0
├── jre-1.7.0-openjdk -> java-1.7.0-openjdk-1.7.0/jre
├── jre-1.8.0 -> /etc/alternatives/jre_1.8.0
├── jre-1.8.0-openjdk -> java-1.8.0-openjdk-1.8.0/jre
└── jre-openjdk -> /etc/alternatives/jre_openjdk
Cordova 需要 JDK
而不是 JRE
,因为它正在检查 javac
。请参阅 check_reqs.js 行 86
。根据您的评论,您是说“在此路径中,JDK
中没有 bin 文件夹 ”,您应该有一个 bin
目录!
你的路径应该是这样的
PATH=$PATH:$ANDROID_HOME/bin:$JAVA_HOME/bin
比
export PATH
在我的具体情况下,我删除并重新安装所有 java 包并添加一个(对于 'instinct'):
我删除了:
java-1_8_0-openjdk
java-1_8_0-openjdk-headless
java-1_8_0-openjdk-plugin
并添加:
java-1_8_0-openjdk
java-1_8_0-openjdk-headless
java-1_8_0-openjdk-plugin
java-1_8_0-openjdk-devel
<<-- 还好我中了
出现主文件夹内的垃圾箱。 javac 和其他东西。
谢谢你们!
对java-X_X_X-openjdk包有点误解。尤其是当您习惯了默认的 Oracle 表示法时。
JDK 部分令人困惑,因为 OpenJDK 是 Java 平台 的开源实现项目,并且不是 JDK - 实际上允许您在 Java 中开发的软件包。 (更精确的信息在这里:http://openjdk.java.net/install/index.html)
TLDR:
java-X_X_X-openjdk 是 Oracle 的 JRE 等价物。
java-X_X_X-openjdk-devel 是 Oracle 的 JDK 等价物。
验证 java & JDK 安装解决了我的问题.. 安装 java & JDK 并尝试..
要构建和 运行 应用程序,您需要为每个目标平台安装 SDK。或者,如果您使用浏览器进行开发,则可以使用不需要任何平台 SDK 的浏览器平台。
检查您是否满足构建平台的要求:
$ cordova requirements
Requirements check results for android:
Java JDK: installed .
Android SDK: installed
Android target: installed android-19,android-21,android-22,android-23,Google Inc.:Google APIs:19,Google Inc.:Google APIs (x86 System Image):19,Google Inc.:Google APIs:23
Gradle: installed
Requirements check results for ios:
Apple OS X: not installed
Cordova tooling for iOS requires Apple OS X
Error: Some of requirements check failed