2012-02-23 17 views

Respuesta

10

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 
+0

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

2

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.

0

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`