Jython: incluye una clase java personalizada [oanda]

  >>> import sys
  >>> sys.path.append("/usr/local/oanda_fxtrade.jar") # add the jar to your path
   >>> 
  >>> import com.oanda.fxtrade.api.test.Example1 as main1
  >>> import com.oanda.fxtrade.api.test.Example2 as cancel
  main1("JPY",9,'-1')
  TypeError: main1("JPY",9,'-1'): expected 0 args; got 3

Esto parece no ser un error, pero realmente necesito algunos argumentos

cancelar()
Subproceso[Subproceso-0,5,principal]

Dentro de la clase java

  public final class Example1 extends Thread {
  private Example1() {
        super();
    }
 public static void main(String[] args) throws Exception {
FXClient fxclient  = API.createFXGame();

String username = "foo";
String password = "foo";
String sel=args[0];
String str1=args[1];
    String str2=args[2];

principal1.principal("JPY 9 -1")

TypeError: main (): el primer argumento no se puede forzar a String []

Ok, creo que pasé al siguiente nivel.

preguntado el 04 de julio de 12 a las 00:07

1 Respuestas

Después

import com.oanda.fxtrade.api.test.Example1 as main1

main1 es la clase. En Java, la ejecución de la clase se ejecutará como principal, pero eso no significa que pueda pasar argumentos a la clase.

Tratar:

main1.main(["JPY","9","-1"])

EDIT: Había dos problemas separados aquí.

Por el error posterior Could not initialize class com.oanda.fxtrade.api.API... parece que deberías revisar esta pregunta: ¿Por qué Jython se niega a encontrar mi paquete de Java?

llamar a sys.path.append para agregar el jar no permite que el escáner de paquetes funcione, lo que sucede en el momento de la carga. Debería intentar importar los módulos/clases requeridos manualmente o quizás agregar el jar al RUTA DE CLASE antes de invocar jython.

a partir de aquí, creo que la respuesta de jython está y se convierte en un com.oanda.fxtrade.api la pregunta probablemente esté fuera del alcance de SO.

contestado el 23 de mayo de 17 a las 12:05

main1() intenta crear una instancia de la clase Example1, no se ejecutará main(). - jfs

Ups, esto no se está ejecutando desde la línea de comandos. Debería haber probado si se necesita main1().main("args","go","here") pero no tengo los frascos de oanda aquí. - Phil Cooper

array=[ 0 for w in range(3)]; array=['JPY','9','-1']; main1.main(array) - Aarón Livni

TypeError: main(): 1st arg no puede ser forzado a String[] Ok, creo que pasé al siguiente nivel - Aarón Livni

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.