Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

682
Vistas
Llame al programa Java desde la aplicación Node.js

Por lo que leí, hay un par de formas de ejecutar archivos java en una aplicación node.js Una forma es generar un proceso secundario: (el código java está empaquetado con dependencias en un archivo jar ejecutable).

 var exec = require('child_process').exec, child; child = exec('java -jar file.jar arg1 arg2', function (error, stdout, stderr){ console.log('stdout: ' + stdout); console.log('stderr: ' + stderr); if(error !== null){ console.log('exec error: ' + error); } });

La otra forma es usar el módulo java - npm ( enlace ), un contenedor sobre JNI (esto me permitirá crear objects , establecer y obtener attributes , ejecutar methods ).

En un entorno de producción, cuando quiero que mi node.js ( Express ) llame a un programa java (simplemente guarda una imagen en el directorio local), avíseme cuál sería la mejor manera de lograr esto (en términos de mejores prácticas). Además, hay una larga lista de arguments que necesito pasar a la clase main y hacerlo en la línea de comando es un poco complicado. ¿Debería hacer que el programa java lea desde un archivo de entrada?

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

1) Si usa exec , ejecutará un programa completo, mientras que si usa una interfaz JNI, podrá interactuar directamente con las bibliotecas y clases en el contenedor y hacer cosas como llamar a una sola función o crear una instancia de una clase Sin embargo, si no necesita nada de eso, creo que usar exec es mucho más simple y también se ejecutará más rápido. Parece que solo desea ejecutar la aplicación Java como un proceso independiente y simplemente registrar si la aplicación finalizó correctamente o con errores. Diría que probablemente sea mejor usar exec para eso. Ejecutar un proceso secundario de esta manera también es mucho mejor para la depuración, ya que la depuración de errores JNI puede ser muy difícil a veces.

2) En cuanto a leer o no los argumentos de un archivo, sí, por lo general es mejor leer de algún tipo de archivo en lugar de pasar los argumentos directamente. Es menos propenso al error humano (es decir, escribir argumentos cada vez) y mucho más configurable. Si alguien como un ingeniero de control de calidad solo necesita editar un archivo de configuración para intercambiar opciones, no necesita comprender todo su código base para probarlo. Personalmente, uso archivos de configuración para cada programa Java que escribo.

about 4 years ago · Santiago Trujillo Denunciar

0

Simplemente puede llamar a un comando java, con classpath y argumentos, usando el módulo node-java-caller, incrusta la llamada para generar y también instalará automáticamente java si no está presente en el sistema

https://github.com/nvuillam/node-java-caller

about 4 years ago · Santiago Trujillo Denunciar

0

Podemos ejecutar todo el proyecto java creando un archivo .jar y ejecutarlo usando el comando en el shell y ejecutar ese archivo de shell. Para ejecutar el código java desde el proyecto nodejs, como sabemos, el proyecto podría ser una combinación de módulos java, js. Llame a la función exec () en el nodo para crear un proceso secundario para ejecutar el archivo de shell que tiene un comando para ejecutar el archivo .sh y también puede pasar algún argumento desde use.eg;

 let fileName = 'someFile.txt'; let userName = 'Charlie Angle'; exec(`sh run.sh --context_param paramFilePath="./storage/${fileName}" --context_param userName="${userName}"`, (error, stdout, stderr) => {// Some code based on execution of above command})
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda