1
  >>> 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

这似乎没有错误 - 但我真的需要一些参数

cancel()
线程[Thread-0,5,main]

内部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];

main1.main("JPY 9 -1")

TypeError: main(): 1st arg 不能被强制转换为 String[]

好的,我想我已经进入了一个新的水平

4

1 回答 1

1

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

main1 是类。在 java 中,执行该类将运行 main 但这并不意味着您可以将 args 传递给该类。

尝试:

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

编辑: 这里有两个单独的问题。

对于随后的错误Could not initialize class com.oanda.fxtrade.api.API......看起来您应该查看这个问题:为什么 Jython 拒绝找到我的 Java 包?

调用 sys.path.append 添加 jar 不允许在加载时发生的包扫描器操作。您应该尝试手动导入所需的模块/类,或者在调用 jython 之前 将 jar 添加到CLASSPATH 。

从这里开始,我认为 jython 答案就在其中,它变成了一个com.oanda.fxtrade.api问题,可能超出了 SO 范围。

于 2012-07-03T23:50:23.187 回答