¿Cómo ejecutar un método Java desde scripts de shell?Llamando a métodos Java desde scripts de shell
Respuesta
Solo puede llamar al método main
. Diseña tu método main
de modo que llame al método que desees.
Cuando digo llame al métodomain
, no lo invoque explícitamente. Es el único punto de entrada a un programa Java cuando lo invocas.
Si su clase parece:
package com.foo;
public class Test {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
Puede utilizar la línea de comandos para invocar la main
desde dentro del directorio donde se pueden encontrar com/foo/Test.class
(Si estás en el directorio classes
en la estructura mostrada muy por debajo):
java com.foo.Test
Si desea hacerlo desde una diferente (Ver la estructura de directorios muy por debajo) guía, entonces usted tiene que establecer la ruta de clases.
java -cp /path/to/classes com.foo.Test
Supongamos la siguiente estructura de directorios para mayor claridad.
-path
-to
-classes
-com
-foo
>Test.class
No se puede ejecutar un método arbitrario directamente desde un script de shell, que tendrá que tener ese método expuesto externamente de alguna manera.
La forma más simple, por supuesto, es escribir un método main
que invoca directamente el código que desea probar.
Como alternativa, puede hacer uso de una aplicación Java que toma parámetros para actuar como un tipo de iniciador. En su forma más cruda, puedes imaginar una aplicación que toma un nombre de clase y un nombre de método como argumentos, luego ejemplifica la clase e invoca el método a través de la reflexión. De forma similar, pero un poco más elegante, utilizamos una aplicación que invoca las operaciones expuestas a través de JMX para disparar ciertos métodos en un servidor cuando sea necesario.
Aunque al final, bash
(o equivalente) no entiende el bytecode de JVM. Usted tendrá que iniciar un proceso de Java para ejecutar el método, que implicará la ejecución de algún métodomain
que a su vez invoca lo que necesita.
Puede usar script de shell y llame a su programa de java como esto:
`#!/bin/bash
JAVA_HOME=/usr/lib/jvm/jdk1.6.0_02
CLASSPATH=/home/freddy/myapp/lib/whatever.jar: .
$JAVA_HOME/bin/java -cp $CLASSPATH MyJavaClass
exit 0`
- 1. llamando a los métodos C++ desde C
- 2. Llamando a métodos DBus en Gjs/Gnome Shell
- 3. Llamando a los métodos C# BHO desde Javascript
- 4. Métodos de instancia llamando a métodos de clase llamando a los métodos de instancia
- 5. llamando a un servlet java desde javascript
- 6. llamando a Restful Service desde Java
- 7. Llamando a gnuplot desde java? (ubuntu)
- 8. Llamando a C# dll desde Java
- 9. Llamando a C++ dll desde Java
- 10. Crear scripts de Python y llamar a métodos desde C#
- 11. Llamando a métodos web desde el mismo servicio web
- 12. Llamando a los métodos @Transactional desde otro hilo (Ejecutable)
- 13. llamando a Thread.sleep() desde el contexto sincronizado en Java
- 14. Llamando a Clojure desde .NET
- 15. ¿Ejecutar scripts de shell desde el Dock OS X?
- 16. llamando al script R desde java
- 17. Llamando al método Win32 API desde Java
- 18. Compiladores para scripts de shell
- 19. Llamando a PowerShell desde NodeJS
- 20. Llamando a Perl desde php?
- 21. llamando a la función java desde c usando jni
- 22. Pruebas unitarias para scripts de shell
- 23. Ejecutando comandos de shell desde Java
- 24. Complementos de Jquery, llamando a funciones de otros métodos
- 25. Llamando a un método java en jsp
- 26. Llamando a Clojure desde dentro de R?
- 27. llamando a funciones de ensamblado desde c
- 28. ejecute el comando de shell desde java
- 29. Forma preferida de #! en scripts de shell
- 30. ctags para scripts de shell sin extensiones
Ah, y por cierto hacer cualquiera de ustedes saben de un servicio en línea ordenada en lo que pueda rápidamente armar estructuras de directorios (texto formato) como el anterior? – adarshr