1

我有一个关于 Eclipse 的项目,我正在处理它,我在 XP 32 位机器上使用它,我想将该项目移动到我的 Windows 7 64 位电脑上。我可以毫无错误地编译我的项目,但是当我运行它时,我得到了错误Exception in thread "main" java.lang.UnsatisfiedLinkError: no frmjapi in java.library.path。我在其他帖子中查找了错误,但其中大多数都在处理本机库,我的项目只包含这个 1 个 jar 文件。我尝试多次删除项目并将其添加到构建路径,但问题仍然存在。这个问题背后的原因可能是什么?

4

4 回答 4

1

原因很明显,您的后台库在运行时依赖于本机库,因此您需要按照错误消息中的建议添加文件的根目录,方法是添加frmjapi.dllVM参数参见运行配置)。java.library.path-Djava.library.path=c:\some\path\to\my\dll\parent\dir

是什么frmjapi.dll

frmjapi.dllOracle Corporation的一个文件,它是Oracle Developer的一部分。frmjapi.dll位于doracledev10g\bin\frmjapi.dll

于 2016-10-11T10:30:27.780 回答
1

这些错误通常在处理本机/平台特定应用程序(如图形或多媒体应用程序)时逐渐出现。您的代码可以正常编译,因为在编译时它只查找直接的 java 依赖项,而不查找所有运行时依赖项,如 .dll 文件。正如您所说,项目已从 32 位平台移至 64 位平台。确保您在 Eclipse 中安装并链接了正确的 java 版本。另外,查看包含的 jar 文件所需的依赖项是什么(它是否支持 64 位机器上的功能)。最后但并非最不重要的一点是尝试从外部 IDE 运行项目(确保它具有所有必需的权限)。

于 2016-10-11T10:38:18.727 回答
0

其他解决方案(与 Jdapi for Oracle Forms 的问题有关)是将文件夹包含%ORACLE_HOME%\bin在您的路径中。然后你不需要为-Djava.library.path你的 java 命令行提供参数。

在运行 Jdapi Java 程序之前,我在 .bat 文件中使用了它:

set ORACLE_HOME=C:\Oracle\Forms12c\products\Oracle_Home
:: Only adds ORACLE_HOME\bin to the PATH if not already present
for %%X in (frmjapi.dll) do (set FOUND=%%~$PATH:X)
if not defined FOUND set PATH=%ORACLE_HOME%\bin;%PATH%
于 2018-05-17T13:11:30.090 回答
0

我尝试在 Windows 10 中运行 jdapi 并遇到了问题。我收到的错误消息是 frmjapi.dll 的“找不到依赖库”。

我对该问题的解决方案如下:

  1. 确保%ORACLE_HOME%/binPATH. (这样可以解决“java.library.path中没有frmjapi”的问题
  2. 安装Windows 10 SDK。(这样可以解决“调用frmjapi.dll找不到依赖库的问题)

有关 dll 丢失问题的更多讨论,请参阅https://stackoverflow.com/a/35466136/7820390

希望这有帮助。

于 2018-11-26T15:32:33.737 回答