Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用cordova生成时JAVA_HOME无效_Java_Android_Cordova_Opensuse - Fatal编程技术网

使用cordova生成时JAVA_HOME无效

使用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

我正试图在我的设备上用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
我在
~/.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-X_X_X-openjdk是Oracle的JRE等价物

  • java-X_X_X-openjdk-devel是Oracle的JDK等价物


  • 验证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。我还需要安装其他东西吗?谢谢,非常有用