无法从Oracle调用dll

时间:2016-04-17 13:23:22

标签: java c# dll oracle11g oracleforms

我有一个c#DLL,我将这个dll从JNI4net转换为使用java。我可以在java中调用dll,但是当我创建一个jar文件并从按钮事件上的oracle触发java函数时。它抛出了异常。

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并在类路径和formsweb.cfg

中添加了jar

需要帮助

1 个答案:

答案 0 :(得分:0)

您在SO中遇到此消息错误: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获得错误这一事实可能意味着Oracle不会像使用Java一样使用相同的Path。它并没有错过jar文件的路径,而是dll one's。