2016-04-17 6 views
1

anzurufen Ich habe eine C# DLL, ich wandle diese DLL von JNI4net mit Java arbeiten. Ich bin in der Lage, die DLL in Java aufzurufen, aber wenn ich eine JAR-Datei erstellen und Java-Funktion von Oracle auf Button-Ereignis auslösen. Es löst Ausnahme aus.Nicht in der Lage, dll von Oracle

Java-Code:

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

ORACLE Ausnahme:

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) 

Ich habe jar unterzeichnet und fügte auch das Glas in Klassenpfad und formsweb.cfg

auf dieser

brauchen Hilfe
+0

Ich glaube nicht, dass Sie die .DLL direkt aus dem Glas laden können. Es sieht so aus, als müssten Sie es zuerst aus dem Glas herausnehmen und dann aufrufen. Beispiel hier: http://stackoverflow.com/questions/1611357/how-to-make-a-jar-file-that-includes-dll-files – Mike

+0

Mein Java-Code läuft perfekt .. Es ruft die C# dll .. Aber ich bin unae, das Glas mit Orakel zu verbinden, es gibt mir Ausnahme, die ich oben erwähne – user1593373

Antwort

0

Sie haben genau diese Fehlermeldung in SO: URI scheme is not "file"

Von Ihrem Fehler, würde ich die folgenden versuchen: nur könnte bedeuten, Oracle funktioniert nicht mit dem gleichen Pfad wie Java allein

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

Die Tatsache, dass Sie den Fehler mit Oracle sind immer. Es fehlt nicht der Pfad der JAR-Datei, sondern der der DLL.