es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

GraalVM JavaScript presenta problemas de “acceso al host”.

Esto se realiza con la consola de intérprete de JavaScript de GraalVM CE 21.3.0.

Intentar acceder a una clase de Java, como java.io.File, resulta en este error:

TypeError: No está permitido acceder a la clase del host java.io.File o no existe.

Cuando se ejecuta la consola sin ninguna opción, se necesita lo siguiente para obtener el error:

new java.io.File()

Cuando se ejecuta la consola con –js.java-package-globals=false, solo se requiere lo siguiente:

Java.type(“java.io.File”)

¿Cómo soluciono este problema? Si se supone que se proporcionarán estas características, ¿por qué no funcionan de inmediato?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para solucionar este problema, puedes habilitar el acceso a las clases de Java ejecutando el shell de GraalVM con la bandera --jvm. Esto iniciará el shell en modo JVM, permitiéndote acceder a todas las clases de Java sin ningún problema.

    En cuanto a por qué estas características no están habilitadas de forma predeterminada, es probablemente debido a preocupaciones de seguridad. Permitir acceso sin restricciones a las clases de Java desde código JavaScript puede potencialmente llevar a vulnerabilidades de seguridad, ya que abre la posibilidad de ejecutar código malicioso en la máquina host. Al deshabilitar esta característica de forma predeterminada, GraalVM asegura que los usuarios sean conscientes de los posibles riesgos al habilitarla.

    Sin embargo, si confías en la seguridad de tu entorno y necesitas acceder a las clases de Java desde tu código JavaScript, puedes habilitar esta característica utilizando la bandera --js.java-package-globals=false, como se mencionó anteriormente.

Comments are closed.