2016-04-17 17 views
1

私はC#DLLを持っています。私はそのDLLをJNI4netからjavaで動作するように変換します。私はjavaでDLLを呼び出すことができますが、私はjarファイルを作成し、ボタンイベントでOracleからJava関数をトリガします。例外がスローされます。Oracleからdllを呼び出すことができません

Javaコード:

Bridge.setVerbose(true); 
    Bridge.setDebug(true); 
    Bridge.LoadAndRegisterAssemblyFrom(new java.io.File("ECR.j4n.dll")); 
    ComECR test = new ComECR(); 
    test.VFI_DoSetup(); 

ORACLE例外:

java.lang.IllegalArgumentException: URI scheme is not "file" 
at java.io.File.<init>(Unknown Source) 
at net.sf.jni4net.CLRLoader.findDefaultDll(CLRLoader.java:54) 
at net.sf.jni4net.Bridge.init(Bridge.java:31) 
at com.ecr.test.Program.getProperty(Program.java:57) 
at oracle.forms.handler.UICommon.onGet(Unknown Source) 
at oracle.forms.engine.Runform.onGetHandler(Unknown Source) 
at oracle.forms.engine.Runform.processMessage(Unknown Source) 
at oracle.forms.engine.Runform.processSet(Unknown Source) 

私はjarファイルに署名し、また、クラスパスにjarファイルを追加し、

この

に助けを必要とするのformsweb.cfgています
+0

瓶から.DLLを直接読み込むことはできません。最初にそれを瓶から取り出してから呼び出す必要があるようです。ここの例:http://stackoverflow.com/questions/1611357/how-to-make-a-jar-file-that-includes-dll-files – Mike

+0

私のJavaコードは完璧に実行されています..それはC#DLLを呼び出します..しかし、私はoracleとjarをリンクするためにunaeです、それは私が上記の私に言及する例外を与える – user1593373

答えて

0

あなたにこのメッセージエラーがあります:URI scheme is not "file"

あなたのエラーから

、私は以下しようとするだろう:

Bridge.setVerbose(true); 
Bridge.setDebug(true); 
Bridge.LoadAndRegisterAssemblyFrom(new java.io.File("file:<fullpath>/ECR.j4n.dll")); 
ComECR test = new ComECR(); 
test.VFI_DoSetup(); 

あなたが唯一のOracleは一人でのJavaと同じパスでは動作しません意味する可能性がOracleとエラーを取得しているという事実を。 jarファイルのパスはなく、dllファイルのパスはありません。

関連する問題