Linux/Unix Shell Scripting - hay forma que desde shell se llame a java en un método especifico

 
Vista:
Imágen de perfil de Sandro
Val: 16
Ha disminuido 1 puesto en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

hay forma que desde shell se llame a java en un método especifico

Publicado por Sandro (5 intervenciones) el 21/02/2019 17:49:04
hay forma que desde shell se llame a java en un método especifico

he buscado sin éxito, pero hay alguna forma que desde un otro programa de java llamar a un método

lo que estoy pensando es hacer un programa en java llamador de métodos

PROGRAMA=xxxxx
METHODS=yyyyyy.
los parámetros para hacerlos mas revueltos y completos, deben ser de la siguiente forma o layout
INDICADOR de para metros en numero
SEPARADOR indicar el símbolo de separación principio y fin de los para metros en dado caso que sean compuestos, ejemplo &&, $$,% %, (), etc. estos varia de acuerdo con los mismos parámetros, y longitud de los mismos, puede ser solamente un espacio.
ejemplos
'3()(hsdhjkdhajk dsakhdsajksh hdjkhsjakhdasjk)(sdahjkhsdajkasdh jklkasdjklsdajl jadkljdaklj)(adhsjkhsadjk dahksdhajkasd jdkljdsal)'
"1 alta"
"5 a b c d e f'
'30 a b c d e f g h i j k l m n o p q r s t u v ww xxxxxx yyyyyyyyyyyyyy z 0 123456789 9817156 76151541'
'30()(a)(b)(c)(d)(e)(0)(f)(g)(h98)(i)(j9)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)(u)(v)(ww)(xxxxxx)(yyyyyyyyyyyyyy)(z)(0)(123456789)(9817156)(76151541)'
etc

java llamadordemetodos $PROGRAMA $METHOD $PARAMETROS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

hay forma que desde shell se llame a java en un método especifico

Publicado por Tom (361 intervenciones) el 21/02/2019 18:30:45
Te entiendo poco (o nada).
¿ Lo que quieres hacer es enviar desde shell una petición a un programa java que ya está en ejecución ?
Si es así, tu programa java y el shell deben comunicarse de alguna manera. Si intuyo correctamente lo que quieres hacer, lo mejor en tu caso es usar un named pipe, que lo creas desde la shell (con mkfifo o mknod) y se lo pasas como parámetro a tu ejecutable java (al arrancarlo).

Otra opción sería usar mensajes tcp/ip ... pero no sé si desde shell es fácil crear un fichero asociado a un socket tcp/ip ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Sandro
Val: 16
Ha disminuido 1 puesto en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

hay forma que desde shell se llame a java en un método especifico

Publicado por Sandro (5 intervenciones) el 22/02/2019 00:06:23
lo que quiero hacer es lo siguiente:

programa a:

1
2
3
4
5
6
7
8
public class a{
 public static void mail (string [] args ){
  b bb = new b();
  System.out.prinln(bb.c());
  System.out.prinln(bb.d());
  System.out.prinln(bb.e());
 }
}

programa b

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class b{
 public static string c(){
  String resultado="hola C";
  return resultado;
 }
 public static string d(){
  String resultado="hola D";
  return resultado;
 }
 public static string e(){
  String resultado="hola E";
  return resultado;
 }
}

aqui la salida seria asi
Hola C
Hola D
Hola E

lo que intento hacer es del bash o un script mandar a llamar al programa b, en el metodo d por ejemplo.

lo de hacer un programa llamador es el programa c

1
2
3
4
5
6
7
8
9
10
public class c{
 public static void main(String [] args){
  if ( args.length > 0){
   String programa = args[0];
   String metodo = args[1]; # esto tomando en cuanta de que exista o no exista
   String parametros = args[2]; # esto tomando en cuenta la logica del layout que mensione, esto seria bastante explicar, por el layout del mismo que estoy planteando
   String resultado = programa.metodo(parametros); # hay posibilidades de que tanto los programas llamados, como los metodos sean variables
   }
  }
}

se puede hacer esto desde bash o desde un script

java c b c # sin parametros se complica
donde c y b son programas
y la nueva c es metodo


gracias por tu pronta respuesta
despues de correr este programa me salga en la terminal
Hola C
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

hay forma que desde shell se llame a java en un método especifico

Publicado por Tom (361 intervenciones) el 22/02/2019 09:14:08
Sigo sin entenderte, en mi opinión no defines correctamente tu idea (parece que usas los términos "programa", "llamar" de una forma muy personal -y ambigua-) y yo no me aclaro.
Lo que quieres es ejecutar un programita java que dependiendo de los parámetros que le pases haga una cosa u otra ¿ correcto ? Pues lógicamente sí, es perfectamente posible.
Y también es posible que desde un programa java ejecutes otros programas (java o no) y obtengas resultados por la salida standard, al estilo de los comandos del shell.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Sandro
Val: 16
Ha disminuido 1 puesto en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

hay forma que desde shell se llame a java en un método especifico

Publicado por Sandro (5 intervenciones) el 22/02/2019 17:56:30
creo que estamos un poco confundidos y no nos entendemos, voy a explicarlo de otra forma

tengo en mi biblioteca de programas estos:
a b c d e f g nada mas

cada programa tiene métodos y parámetros diferentes

preguntas

1.- hay forma que desde shell o bash llame a un programa en un método especifico?
2.- lo del programa llamador, llamadorDeProgramas que es el zzzz!

- quiero hacer que los parámetros me digan que programa llamar, y que parámetros enviar
- yo se que si los pongo fijos con if lo puedo solucionar
1
java zzzz programas_Existentes parámetros
.
si es a, b, c, d, e, f o g. no hay problema

llega un programa nuevo es el h, para llamar a este programa nuevo tengo que modificar el llamadordeprograma (zzzz), o llamarlo directamente
1
java h parámetros_enviar

la idea que tengo es hacer el programa llamador (zzzz), que llame a cualquier programa, cualquier método, acepte los parámetros se puede hacer esto

ejemplo de código, unas lineas
1
2
$variable_de_programa cualquierNombre = new $variable_de_programa (  );
String Resultado = cualquierNombre.$variable_de_metodo ( parámetros ya resueltos de acuerdo al layout planteado );

ES POSIBLE LLAMAR UN PROGRAMA POR MEDIO DE LA VARIABLE Y A SU VEZ EL MÉTODO

GRACIAS por tu pronta respuesta

pd. algo asi como el mismo programa java
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Sandro
Val: 16
Ha disminuido 1 puesto en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

hay forma que desde shell se llame a java en un método especifico

Publicado por Sandro (5 intervenciones) el 22/02/2019 18:16:02
PERO ADEMÁS QUE INCLUYA LOS MÉTODOS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

hay forma que desde shell se llame a java en un método especifico

Publicado por Tom (361 intervenciones) el 22/02/2019 20:35:50
Pues no. No puedes "llamar" a un método específico de una clase. Ejecutas un programa y le pasas parámetros.
En java, la ejecución de un programita comienza en el método main() de una clase que le pasas como parámetro a la jvm.
Entonces, no puedes ejecutar un método cualquiera (siempre será el main()) pero sí puedes especificar el nombre de una clase (que contenga un método main()).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Sandro
Val: 16
Ha disminuido 1 puesto en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

hay forma que desde shell se llame a java en un método especifico

Publicado por Sandro (5 intervenciones) el 23/02/2019 17:26:32
esa respuesta asumo que es de bash o script, lo cual ya lo tenia entendido. y encontrado que no es posible

gracias

hay forma de hacer un programa similar al programa java, donde pues llamar a cualquier programa, y además hay forma de que al llamar a un programa este sea una variable.

y hay forma de llamar de ese programa llamado a un método y este método sea una variable

la idea que tengo es hacer el programa llamador (zzzz), que llame a cualquier programa, cualquier método, acepte los parámetros se puede hacer esto

ejemplo de código, unas lineas
1
2

1
2
3
$variable_de_programa cualquierNombre = new $variable_de_programa (  );
 
String Resultado = cualquierNombre.$variable_de_metodo ( parámetros ya resueltos de acuerdo al layout planteado );



GRACIAS por tu pronta respuesta

pd. algo asi como el mismo programa java, PERO ADEMÁS QUE INCLUYA LOS MÉTODOS.

ya que se que puedo llamar desde el mismo programa java, al programa java (como comando) para así que al llamar un programa sea variable, pero es posible que el método sea variable
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar