tools studio manager mac instalar english java android cordova opensuse

studio - JAVA_HOME no válido cuando se compila con cordova



sdk android mac (5)

Córdova necesita un JDK no un JRE , ya que está buscando javac . Ver check_reqs.js línea 86 . De sus comentarios está diciendo que " Dentro de esta ruta, no hay una carpeta bin " en un JDK ¡debería tener un directorio bin !

Intento emular una aplicación en mi dispositivo con cordova en OpenSuse Leap 42.1.
Pero cuando traté de emular la aplicación con la cordova run el siguiente error:

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

Tengo el Java instalado y las rutas establecidas en ~/.profile .
¿Cuál es el error de configuración en mi entorno?

Debajo de mi .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

Información sobre la versión de 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)

Y aquí la lista de la carpeta 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

[editar] Árbol de vista con tres niveles:

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


En mi caso específico, elimino y reinstalé todos los paquetes de Java y agregué uno (para ''instinto''):
Quite:
java-1_8_0-openjdk
java-1_8_0-openjdk-headless
java-1_8_0-openjdk-plugin

Y agregado:
java-1_8_0-openjdk
java-1_8_0-openjdk-headless
java-1_8_0-openjdk-plugin
java-1_8_0-openjdk-devel << - por suerte lo golpeé

Aparece el contenedor dentro de la carpeta principal. Con javac y otras cosas.
¡Gracias chicos!


Es un poco malentendido con los paquetes java-X_X_X-openjdk. Especialmente cuando está acostumbrado a la notación por defecto de Oracle.

La parte JDK es confusa, porque OpenJDK es un proyecto de implementación de código abierto de la Plataforma Java y no un paquete JDK, lo que realmente le permite desarrollar en Java. (información más precisa aquí: http://openjdk.java.net/install/index.html )

TLDR:

  1. java-X_X_X-openjdk es el equivalente de JRE de Oracle.

  2. java-X_X_X-openjdk-devel es el equivalente JDK de Oracle.


La verificación de las instalaciones de Java y JDK resolvió mi problema. Instala Java y JDK y prueba ...

Para compilar y ejecutar aplicaciones, debe instalar SDK para cada plataforma a la que desee orientar sus anuncios. Alternativamente, si está utilizando el navegador para el desarrollo puede usar la plataforma del navegador que no requiere ningún SDK de plataforma.

Para verificar si cumple con los requisitos para construir la plataforma:

$ 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


Tu camino debería ser así

PATH=$PATH:$ANDROID_HOME/bin:$JAVA_HOME/bin

y que export PATH