Hi,
I'm trying to build a callback based on some java code. Below is how I did
it. All the classes live in ~/IBJts/java/com/ib/client so I did:
export CLASSPATH=~/IBJts/java/com/ib/client:/home/jstrauss/java
But I'm getting errors:
[EMAIL PROTECTED]:~/bin$ ./callback
A problem was encountered while attempting to compile and install your Inline
Java code. The command that failed was:
"/usr/lib/j2sdk1.5-sun/bin/javac" -deprecation -d
"/home/jstrauss/bin/_Inline/lib/auto/Callback_6d40" Callback_6d40.java >
cmd.out 2>&1
The build directory was:
/home/jstrauss/bin/_Inline/build/Callback_6d40
The error message was:
Callback_6d40.java:24: class EWrapper is public, should be declared in a file
named EWrapper.java
public interface EWrapper {
^
Callback_6d40.java:34: cannot find symbol
symbol : class Contract
location: interface com.ib.client.EWrapper
void openOrder( int orderId, Contract contract, Order order);
^
...
I'm sort of stuck, I'm not real familiar with Java, so I'm not sure if this is
a java environment config error or more on the Inline side of things.
Any help would be appreciated
Thanks
Jay
#!/usr/bin/perl
use strict;
package Callback;
use Inline Java => <<'EOF';
/*
* EWrapper.java
*
*/
package com.ib.client;
import java.io.*;
import java.net.*;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: Interactive Brokers Group LLC</p>
* @author :
* @version :
*/
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
//
// Interface EWrapper
//
///////////////////////////////////////////////////////////////////////////
public interface EWrapper {
///////////////////////////////////////////////////////////////////////
// Interface methods
///////////////////////////////////////////////////////////////////////
void tickPrice( int tickerId, int field, double price, int
canAutoExecute);
void tickSize( int tickerId, int field, int size);
void orderStatus( int orderId, String status, int filled, int remaining,
double avgFillPrice, int permId, int parentId, double
lastFillPrice,
int clientId);
void openOrder( int orderId, Contract contract, Order order);
void error( String str);
void connectionClosed();
void updateAccountValue(String key, String value, String currency, String
accountName);
void updatePortfolio(Contract contract, int position, double marketPrice,
double marketValue,
double averageCost, double unrealizedPNL, double realizedPNL,
String accountName);
void updateAccountTime(String timeStamp);
void nextValidId( int orderId);
void contractDetails(ContractDetails contractDetails);
void bondContractDetails(ContractDetails contractDetails);
void execDetails( int orderId, Contract contract, Execution execution);
void error(int id, int errorCode, String errorMsg);
void updateMktDepth( int tickerId, int position, int operation, int side,
double price, int size);
void updateMktDepthL2( int tickerId, int position, String marketMaker, int
operation, int side, double price, int size);
void updateNewsBulletin( int msgId, int msgType, String message, String
origExchange);
void managedAccounts( String accountsList);
void receiveFA(int faDataType, String xml);
void historicalData(int reqId, String date, double open, double high,
double low,
double close, int volume, double WAP, boolean hasGaps);
void scannerParameters(String xml);
void scannerData(int reqId, int rank, ContractDetails contractDetails,
String distance, String benchmark, String projection);
}
EOF
sub new {
my $class;
bless {}, $class;
}
package Main;
my $new = Callback->new();