【问题标题】:Unable to call dll from Oracle无法从 Oracle 调用 dll
【发布时间】:2016-08-09 04:40:48
【问题描述】:

我有一个 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

需要帮助

【问题讨论】:

  • 我认为您不能直接从 jar 加载 .DLL。看起来您需要先从 jar 中提取它,然后再调用它。此处示例:stackoverflow.com/questions/1611357/…
  • 我的 java 代码运行完美.. 它调用 c# dll.. 但我无法将 jar 与 oracle 链接,它给了我上面提到的异常

标签: java c# dll oracle11g oracleforms


【解决方案1】:

您在 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 相同的路径。它不是缺少 jar 文件的路径,而是缺少 dll 的路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-23
    • 1970-01-01
    • 1970-01-01
    • 2016-04-16
    • 1970-01-01
    • 1970-01-01
    • 2016-12-13
    • 1970-01-01
    相关资源
    最近更新 更多