使用cordova生成时JAVA_HOME无效
我正试图在我的设备上用OpenSuse Leap 42.1中的cordova模拟一个应用程序。使用cordova生成时JAVA_HOME无效,java,android,cordova,opensuse,Java,Android,Cordova,Opensuse,我正试图在我的设备上用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 hav
但是,当我尝试使用
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
我在~/.profile
中安装了java并设置了路径我的环境中的配置错误是什么 在我的
.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
。请参见第86行86
。从您的评论中可以看出,“在这个路径中,JDK
中没有bin文件夹”,您应该有一个bin
目录 您的路径应该是这样的
PATH=$PATH:$ANDROID\u HOME/bin:$JAVA\u HOME/bin
及
导出路径
在我的特定情况下,我删除并重新安装所有java包,然后添加一个(用于“本能”):我删除了:
java-1\u 8\u 0-openjdk
java-1\u 8\u 0-openjdk-headless
java-1\u 8\u 0-openjdk-plugin
并添加:java-1\u 8\u 0-openjdk
java-1\u 8\u 0-openjdk-headless
java-1\u 8\u 0-openjdk-plugin
java-1_8_0-openjdk-devel
对java-X_X_X-openjdk软件包有点误解。尤其是当您习惯于使用默认的Oracle表示法时
JDK部分令人困惑,因为OpenJDK是一个Java平台的开源实现项目,而不是一个允许您使用Java开发的JDK包。
(此处提供更准确的信息:)
TLDR:
验证java和JDK安装解决了我的问题。。安装java和JDK并重试 要构建和运行应用程序,您需要为您希望瞄准的每个平台安装SDK。或者,如果使用browser进行开发,则可以使用不需要任何平台SDK的browser platform 要检查您是否满足构建平台的要求,请执行以下操作:
$ 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
在这个路径中,没有bin文件夹。有
jre
文件夹。里面是bin
和lib
文件夹。我指向jre/bin,什么也没有。同样的错误。@RafaelSoufraz是的。您将路径指向PATH
指向$JAVA\u HOME/jre/bin
,但是它应该指向$JAVA\u HOME/bin
您收到我的第一条评论了吗?“在这个路径中,没有bin文件夹。”我知道你在试图帮助我。但我一直在尝试这个步骤。谢谢你。你能做这个吗。原因是您的可执行文件位于/usr/bin
文件夹中,因此该文件夹中没有bin
文件夹。我用/usr/lib64/jvm
树更新了这个问题。真的没有bin文件夹。主文件夹的名称是java-1.8.0-openjdk-1.8.0
。JDK。我还需要安装其他东西吗?谢谢,非常有用