Created
March 22, 2013 05:07
-
-
Save anonymous/5219067 to your computer and use it in GitHub Desktop.
Jruby external jar dependency not being found
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
user@mbpro (agent_branch)% echo $CLASSPATH ~/code/my_project | |
/Users/user/code/my_project/java/lib/matlabcontrol-4.0.0.jar |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
bijan@mbpro (cache_agent_trades)% jar tf matlabcontrol-4.0.0.jar | |
META-INF/MANIFEST.MF | |
matlabcontrol-info.html | |
matlabcontrol/extensions/MatlabTypeConverter$ArrayInfo.class | |
matlabcontrol/extensions/MatlabTypeConverter$GetArrayCallable.class | |
matlabcontrol/extensions/MatlabTypeConverter$SetArrayCallable.class | |
matlabcontrol/extensions/MatlabTypeConverter.class | |
matlabcontrol/extensions/MatlabTypeConverter.java | |
matlabcontrol/extensions/package-info.class | |
matlabcontrol/extensions/package-info.java | |
matlabcontrol/extensions/MatlabProxyLogger$1.class | |
matlabcontrol/extensions/MatlabProxyLogger$10.class | |
matlabcontrol/extensions/MatlabProxyLogger$11.class | |
matlabcontrol/extensions/MatlabProxyLogger$12.class | |
matlabcontrol/extensions/MatlabProxyLogger$13.class | |
matlabcontrol/extensions/MatlabProxyLogger$14.class | |
matlabcontrol/extensions/MatlabProxyLogger$15.class | |
matlabcontrol/extensions/MatlabProxyLogger$2.class | |
matlabcontrol/extensions/MatlabProxyLogger$3.class | |
matlabcontrol/extensions/MatlabProxyLogger$4.class | |
matlabcontrol/extensions/MatlabProxyLogger$5.class | |
matlabcontrol/extensions/MatlabProxyLogger$6.class | |
matlabcontrol/extensions/MatlabProxyLogger$7.class | |
matlabcontrol/extensions/MatlabProxyLogger$8.class | |
matlabcontrol/extensions/MatlabProxyLogger$9.class | |
matlabcontrol/extensions/MatlabProxyLogger$Invocation.class | |
matlabcontrol/extensions/MatlabProxyLogger$ReturnBooleanInvocation.class | |
matlabcontrol/extensions/MatlabProxyLogger$ReturnInvocation.class | |
matlabcontrol/extensions/MatlabProxyLogger$ReturnThrowingInvocation.class | |
matlabcontrol/extensions/MatlabProxyLogger$VoidInvocation.class | |
matlabcontrol/extensions/MatlabProxyLogger$VoidThrowingInvocation.class | |
matlabcontrol/extensions/MatlabProxyLogger.class | |
matlabcontrol/extensions/MatlabProxyLogger.java | |
matlabcontrol/extensions/MatlabNumericArray$ArrayDimensionException.class | |
matlabcontrol/extensions/MatlabNumericArray$DoubleArrayType.class | |
matlabcontrol/extensions/MatlabNumericArray.class | |
matlabcontrol/extensions/MatlabNumericArray.java | |
matlabcontrol/extensions/CallbackMatlabProxy$1.class | |
matlabcontrol/extensions/CallbackMatlabProxy$10.class | |
matlabcontrol/extensions/CallbackMatlabProxy$2.class | |
matlabcontrol/extensions/CallbackMatlabProxy$3.class | |
matlabcontrol/extensions/CallbackMatlabProxy$4.class | |
matlabcontrol/extensions/CallbackMatlabProxy$5.class | |
matlabcontrol/extensions/CallbackMatlabProxy$6.class | |
matlabcontrol/extensions/CallbackMatlabProxy$7.class | |
matlabcontrol/extensions/CallbackMatlabProxy$8.class | |
matlabcontrol/extensions/CallbackMatlabProxy$9.class | |
matlabcontrol/extensions/CallbackMatlabProxy$DaemonThreadFactory.class | |
matlabcontrol/extensions/CallbackMatlabProxy$MatlabCallback.class | |
matlabcontrol/extensions/CallbackMatlabProxy$MatlabDataCallback.class | |
matlabcontrol/extensions/CallbackMatlabProxy.class | |
matlabcontrol/extensions/CallbackMatlabProxy.java | |
matlabcontrol/internal/MatlabRMIClassLoaderSpi.class | |
matlabcontrol/internal/MatlabRMIClassLoaderSpi.java | |
matlabcontrol/MatlabProxyFactory$Request.class | |
matlabcontrol/MatlabProxyFactory$RequestCallback.class | |
matlabcontrol/MatlabProxyFactory.class | |
matlabcontrol/MatlabProxyFactory.java | |
matlabcontrol/ThrowableWrapper.class | |
matlabcontrol/ThrowableWrapper.java | |
matlabcontrol/MatlabClassLoaderHelper.class | |
matlabcontrol/MatlabClassLoaderHelper.java | |
matlabcontrol/PermissiveSecurityManager.class | |
matlabcontrol/PermissiveSecurityManager.java | |
matlabcontrol/MatlabProxy$DisconnectionListener.class | |
matlabcontrol/MatlabProxy$Identifier.class | |
matlabcontrol/MatlabProxy$MatlabThreadCallable.class | |
matlabcontrol/MatlabProxy$MatlabThreadProxy.class | |
matlabcontrol/MatlabProxy.class | |
matlabcontrol/MatlabProxy.java | |
matlabcontrol/MatlabBroadcaster$1.class | |
matlabcontrol/MatlabBroadcaster.class | |
matlabcontrol/MatlabBroadcaster.java | |
matlabcontrol/ProxyFactory.class | |
matlabcontrol/ProxyFactory.java | |
matlabcontrol/RequestReceiver.class | |
matlabcontrol/RequestReceiver.java | |
matlabcontrol/JMIWrapperRemoteImpl.class | |
matlabcontrol/JMIWrapperRemoteImpl.java | |
matlabcontrol/MatlabConnectionException.class | |
matlabcontrol/MatlabConnectionException.java | |
matlabcontrol/LocalMatlabProxyFactory$LocalIdentifier.class | |
matlabcontrol/LocalMatlabProxyFactory$LocalRequest.class | |
matlabcontrol/LocalMatlabProxyFactory.class | |
matlabcontrol/LocalMatlabProxyFactory.java | |
matlabcontrol/JMIWrapper$1.class | |
matlabcontrol/JMIWrapper$2.class | |
matlabcontrol/JMIWrapper$3.class | |
matlabcontrol/JMIWrapper$4.class | |
matlabcontrol/JMIWrapper$5.class | |
matlabcontrol/JMIWrapper$6.class | |
matlabcontrol/JMIWrapper$7.class | |
matlabcontrol/JMIWrapper$8.class | |
matlabcontrol/JMIWrapper$MatlabReturn.class | |
matlabcontrol/JMIWrapper$MatlabThreadProxyImpl.class | |
matlabcontrol/JMIWrapper.class | |
matlabcontrol/JMIWrapper.java | |
matlabcontrol/JMIWrapperRemote.class | |
matlabcontrol/JMIWrapperRemote.java | |
matlabcontrol/RemoteMatlabProxy$1.class | |
matlabcontrol/RemoteMatlabProxy$2.class | |
matlabcontrol/RemoteMatlabProxy$3.class | |
matlabcontrol/RemoteMatlabProxy$4.class | |
matlabcontrol/RemoteMatlabProxy$5.class | |
matlabcontrol/RemoteMatlabProxy$6.class | |
matlabcontrol/RemoteMatlabProxy$7.class | |
matlabcontrol/RemoteMatlabProxy$8.class | |
matlabcontrol/RemoteMatlabProxy$CheckConnectionTask.class | |
matlabcontrol/RemoteMatlabProxy$RemoteInvocation.class | |
matlabcontrol/RemoteMatlabProxy.class | |
matlabcontrol/RemoteMatlabProxy.java | |
matlabcontrol/LocalHostRMIHelper$LocalHostRMISocketFactory.class | |
matlabcontrol/LocalHostRMIHelper$LocalHostRemoteObject.class | |
matlabcontrol/LocalHostRMIHelper.class | |
matlabcontrol/LocalHostRMIHelper.java | |
matlabcontrol/JMIValidator.class | |
matlabcontrol/JMIValidator.java | |
matlabcontrol/MatlabSessionImpl.class | |
matlabcontrol/MatlabSessionImpl.java | |
matlabcontrol/package-info.class | |
matlabcontrol/package-info.java | |
matlabcontrol/Configuration.class | |
matlabcontrol/Configuration.java | |
matlabcontrol/MatlabSession.class | |
matlabcontrol/MatlabSession.java | |
matlabcontrol/LocalMatlabProxy.class | |
matlabcontrol/LocalMatlabProxy.java | |
matlabcontrol/MatlabInteractor.class | |
matlabcontrol/MatlabInteractor.java | |
matlabcontrol/MatlabConnector$EstablishConnectionRunnable.class | |
matlabcontrol/MatlabConnector$ModifyCodebaseCallable.class | |
matlabcontrol/MatlabConnector.class | |
matlabcontrol/MatlabConnector.java | |
matlabcontrol/MatlabInvocationException$Reason.class | |
matlabcontrol/MatlabInvocationException.class | |
matlabcontrol/MatlabInvocationException.java | |
matlabcontrol/RemoteMatlabProxyFactory$GetProxyRequestCallback.class | |
matlabcontrol/RemoteMatlabProxyFactory$ProcessStreamDrainer.class | |
matlabcontrol/RemoteMatlabProxyFactory$RemoteIdentifier.class | |
matlabcontrol/RemoteMatlabProxyFactory$RemoteRequest.class | |
matlabcontrol/RemoteMatlabProxyFactory$RemoteRequestReceiver.class | |
matlabcontrol/RemoteMatlabProxyFactory.class | |
matlabcontrol/RemoteMatlabProxyFactory.java | |
matlabcontrol/MatlabProxyFactoryOptions$Builder.class | |
matlabcontrol/MatlabProxyFactoryOptions.class | |
matlabcontrol/MatlabProxyFactoryOptions.java |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
irb(main):081:0> $CLASSPATH | |
=> ["file:/Users/user/code/my_project/java/lib/matlabcontrol-4.0.0.jar""file:/Users/user/code/my_project/java/classes/"] | |
irb(main):007:0> java_import 'main.program.Matlab' | |
NameError: cannot link Java class main.program.Matlab, probable missing dependency: matlabcontrol/MatlabInvocationException | |
from org/jruby/javasupport/JavaClass.java:1227:in `for_name' | |
from org/jruby/javasupport/JavaUtilities.java:34:in `get_proxy_class' | |
from file:/Users/user/.rbenv/versions/jruby-1.7.3/lib/jruby.jar!/jruby/java/core_ext/object.rb:26:in `java_import' | |
from org/jruby/RubyArray.java:2361:in `map' | |
from file:/Users/user/.rbenv/versions/jruby-1.7.3/lib/jruby.jar!/jruby/java/core_ext/object.rb:22:in `java_import' | |
from (irb):7:in `evaluate' | |
from org/jruby/RubyKernel.java:1066:in `eval' | |
from org/jruby/RubyKernel.java:1409:in `loop' | |
from org/jruby/RubyKernel.java:1174:in `catch' | |
from org/jruby/RubyKernel.java:1174:in `catch' | |
from /Users/user/.rbenv/versions/jruby-1.7.3/bin/jirb:13:in `(root)' | |
irb(main):008:0> java_import 'main.agent_optimization.Main' | |
=> [Java::MainAgent_optimization::Main] | |
irb(main):009:0> Main.test | |
=> "called from java" | |
irb(main):010:0> Main.testWD | |
=> #<Java::Matlabcontrol::MatlabProxyFactory:0x686cf054> | |
irb(main):011:0> Main.testWD2 | |
Java::JavaLang::NoClassDefFoundError: matlabcontrol/MatlabInvocationException | |
from main.agent_optimization.Main.testWD2(Unknown Source) | |
from sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | |
from sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) | |
from sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) | |
from java.lang.reflect.Method.invoke(Method.java:601) | |
from org.jruby.javasupport.JavaMethod.invokeDirectWithExceptionHandling(JavaMethod.java:440) | |
from org.jruby.javasupport.JavaMethod.invokeStaticDirect(JavaMethod.java:362) | |
from org.jruby.java.invokers.StaticMethodInvoker.call(StaticMethodInvoker.java:50) | |
from org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:306) | |
from org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:136) | |
from org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:64) | |
from org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105) | |
from org.jruby.ast.RootNode.interpret(RootNode.java:129) | |
from org.jruby.evaluator.ASTInterpreter.INTERPRET_EVAL(ASTInterpreter.java:96) | |
from org.jruby.evaluator.ASTInterpreter.evalWithBinding(ASTInterpreter.java:175) | |
from org.jruby.RubyKernel.evalCommon(RubyKernel.java:1103) | |
... 119 levels... | |
from org.jruby.ast.BlockNode.interpret(BlockNode.java:71) | |
from org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75) | |
from org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:182) | |
from org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:188) | |
from org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326) | |
from org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170) | |
from Users.user.$_dot_rbenv.versions.jruby_minus_1_dot_7_dot_3.bin.jirb.__file__(/Users/user/.rbenv/versions/jruby-1.7.3/bin/jirb:13) | |
from Users.user.$_dot_rbenv.versions.jruby_minus_1_dot_7_dot_3.bin.jirb.load(/Users/user/.rbenv/versions/jruby-1.7.3/bin/jirb) | |
from org.jruby.Ruby.runScript(Ruby.java:815) | |
from org.jruby.Ruby.runScript(Ruby.java:808) | |
from org.jruby.Ruby.runNormally(Ruby.java:679) | |
from org.jruby.Ruby.runFromMain(Ruby.java:528) | |
from org.jruby.Main.doRunFromMain(Main.java:390) | |
from org.jruby.Main.internalRun(Main.java:279) | |
from org.jruby.Main.run(Main.java:221) | |
from org.jruby.Main.main(Main.java:201)irb(main):012:0> | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main.program; | |
import java.util.LinkedList; | |
import matlabcontrol.*; | |
import matlabcontrol.extensions.*; | |
public class Matlab | |
{ | |
private static boolean cVerbose = false; | |
private static boolean cInitialized = false; | |
private static MatlabProxyFactory cFactory; | |
private static MatlabProxy mProxy; | |
private static MatlabTypeConverter mProcessor; | |
public static MatlabProxyFactory getFactory () { return cFactory; } | |
public static MatlabTypeConverter getProcessor() { return mProcessor; } | |
public static MatlabProxy getProxy () { return mProxy; } | |
public static void initialize() | |
{ | |
try | |
{ | |
MatlabProxyFactoryOptions options | |
= new MatlabProxyFactoryOptions | |
.Builder() | |
.setHidden(true) | |
.setProxyTimeout(60000L) | |
.setUsePreviouslyControlledSession(true) | |
.build(); | |
cFactory = new MatlabProxyFactory(options); | |
mProxy = cFactory.getProxy(); | |
mProcessor = new MatlabTypeConverter(mProxy); | |
mProxy.eval("clear;"); | |
} | |
catch (MatlabConnectionException e) { throw new RuntimeException(e); } | |
catch (MatlabInvocationException e) { throw new RuntimeException(e); } | |
} | |
... | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main.program; | |
import java.util.HashMap; | |
import java.util.LinkedList; | |
import matlabcontrol.MatlabInvocationException; | |
import matlabcontrol.MatlabConnectionException; | |
import matlabcontrol.MatlabProxy; | |
import matlabcontrol.MatlabProxyFactory; | |
import matlabcontrol.MatlabProxyFactoryOptions; | |
import main.program.Matlab; | |
import org.joda.time.DateTime; | |
public class Program | |
{ | |
private LinkedList<Instrument> instruments; | |
private static int mComponentCounter = 0; | |
public static String test() { | |
return "called form java class"; | |
} | |
public static MatlabProxyFactory testWD() { | |
MatlabProxyFactoryOptions options | |
= new MatlabProxyFactoryOptions | |
.Builder() | |
.setHidden(true) | |
.setProxyTimeout(60000L) | |
.setUsePreviouslyControlledSession(true) | |
.build(); | |
return new MatlabProxyFactory(options); | |
} | |
public static void testWD2() { | |
Matlab.initialize(); | |
Matlab.disconnect(); | |
System.out.println("disconnected"); | |
System.exit(0); | |
} | |
... | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment