当前位置: 首页 > 知识库问答 >
问题:

在OS X El Capitan上运行IBM Notes Java应用程序会引发UnsatisfiedLinkError

斜成济
2023-03-14

我试图运行一个在Mac上访问Notes客户机的HelloWord Java应用程序。我在旧版本上工作过。目前我有Java1.8.0_101-B13和OS/X10.11.6。我尝试运行以下代码:

import lotus.domino.NotesException;
import lotus.domino.NotesFactory;
import lotus.domino.NotesThread;
import lotus.domino.Session;

public class HelloWorld {

  public static void main(String[] args) throws NotesException {
    HelloWorld hw = new HelloWorld();
    hw.sayHello();
  }

  private void sayHello() throws NotesException {
    System.out.println("java.library.path: "+ System.getProperty("java.library.path"));
    System.out.println("PATH: "+ System.getenv("PATH"));
    NotesThread.sinitThread();
    Session s = NotesFactory.createSession();
    System.out.println(s.getEffectiveUserName());
    NotesThread.stermThread();
  }
} 

我在Eclipse运行配置中设置了ld_library_path=/applications/ibm Notes.app。当我运行该应用程序时,我会得到:

java.library.path:/applications/ibm Notes.app:/users/joe/library/java/extensions:/library/java/extensions:/network/library/java/extensions:/system/libr/java:.path:/applications/ibm Notes.app://usr/bin://bin://usr/sbin://sbin://sbin在thread“main”java.lang.unsatifiedlinkerror:java.lang.classloader.loadLibrary.path中出现异常:在java.lang.classloader.loadLibrary(classloader.java:1864)java.lang.runtime.loadLibrary(runtime.java:870)java.lang.system.loadLibrary(system.java:1122)AyHello(helloworld.java:31)位于com.notessensei.helloworld.main(Helloworld.java:20)

库路径看起来正常。我一定漏掉了什么明显的东西?

UPDATE:当您查看输出时,Java会拾取LD_LIBRARY_PATH变量,因此似乎不需要DYLD_LIBRARY_PATH(我添加它是为了测试,但没有用)。Dyld...在OS/X上似乎有问题。

一个不清楚的想法是:在OS/X世界中,您通常指向应用程序(IBM Notes.App),但内容实际上在appname.App/contents/macos中。我想我两个都试过了,结果都一样。路径中的空间会吐出来吗?

oTool-l libxmlproc.dylib

libxmlproc.dylib:@executable_path/libxmlproc.dylib(兼容性版本0.0.0,当前版本0.0.0)@executable_path/libnotes.dylib(兼容性版本0.0.0,当前版本0.0.0)/system/liblib/bnotes.dylib(兼容性版本0.0.0,当前版本0.0.0)/system/liblib/framework/carbon.framework/varameter/a/carbon(兼容性版本0.0.0,当前版本0.0.0)/usr/lib/libstdc++.6.dylib(兼容性版本7.0.0,当前版本

`oTool-l libNotes.dylib'

libNotes.dylib:@executable_path/libNotes.dylib(兼容性版本0.0.0,当前版本0.0.0)/usr/lib/libresolv.9.dylib(兼容性版本1.0.0,当前版本1.0.0)@executable_path/libjsmac.dylib(兼容性版本0.0.0,当前版本0.0.0)@executable_path/libndgts.dylib(兼容性版本0.0.0,当前版本0.0.0)@executable_path/libxmlproc.dylib(兼容性版本0.0.0,当前版本库/framework/security.framework/versions/a/security(兼容性版本1.0.0,当前版本55471.14.0)/system/library/framework/iokit.framework/verramework/a/iokit(兼容性版本1.0.0,当前版本275.0.0)/system/library/framework/cocoa.framework/vramework/a/cocoa(兼容性版本1.0.0,当前版本20.0.0)/system/library/framework/a/cocoa(兼容性版本2.0.0,当前版本/lib/libstdc++.6.dylib(兼容性版本7.0.0,当前版本60.0.0)/usr/lib/libsystem.b.dylib(兼容性版本1.0.0,当前版本1197.1.1)/system/libraramets/corefoundation.framework/versions/a/corefoundation(兼容性版本150.0.0,当前版本855.14.0)/usr/lib/libobjc.a.dylib(兼容性版本1.0.0,当前版本228.0.0)/system/libraramet/a/cfnetwork(兼容性版本45.0.0,当前版本0,当前版本673.2.1)/system/library/frameworks/applicationservices.framework/versions/a/applicationservices(兼容性版本1.0.0,当前版本48.0.0)/system/library/frameworks/correservices.framework/versions/a/correservices(兼容性版本1.0.0,当前版本59.0.0)

还有什么?

共有1个答案

谢铭
2023-03-14

经过多次探索,结果发现有两个问题需要解决。第一个,在Mikkel Flint Heisterberg的一篇文章中描述了。除了DYLD_LIBRARY_PATH之外,还需要设置另一个环境变量:Notesbin。两者都指向同一个位置:

DYLD_LIBRARY_PATH=/Applications/IBM Notes.app/Contents/MacOS
NOTESBIN=/Applications/IBM Notes.app/Contents/MacOS

在Eclipse运行配置中不需要引号或反斜杠。

第二个更棘手。为了方便起见,由于它以前工作过,我创建了一个名为'Notes9'的新条目“Installed JVM的”。在这里,我指出了Oracle JVM8(是的,在Mac Notes上运行Java8)和Notes程序目录jvm/lib/ext中的Notes.jar(以及其他)。

 类似资料:
  • 更新2: 除了必须按照我在第一次更新中所说的那样做之外,我还必须将签名从“对ClickOnce清单签名”更改为“对程序集签名”,我的应用程序现在正在windows XP上工作。

  • 我是Spring应用程序开发的新手。 如何在tomcat服务器的开发阶段运行我的应用程序。 在这里我可以看到最终部署的解决方案。每次我需要停下来重新开始时,我只需要在ui上更改一些。这让我很难受。所以你能帮我照顾她吗?? 我的pom.xml依赖是 org.springframework spring-binding 1.0.6

  • 问题内容: 有没有办法在IIS上运行Go Web应用程序? 我找到了azure的设置,但是它在我的开发机器上不起作用, 这是azure的网络配置: 问题答案: 您的本地IIS无法正常运行,因为您需要安装一个名为HttpPlatformHandler模​​块的单独组件, https://azure.microsoft.com/zh-CN/blog/announcing-the-release-of-

  • 我试图在AWS EMR上运行一个Spark应用程序。我遵循http://blogs.aws.amazon.com/bigdata/post/tx15ay5c50k70rv/installing-apache-spark-on-an-amazon-emr-cluster的说明 我从S3中加载fat-jar(通过执行“SBT Assembly”获得)和应用程序所需的输入文件。我在Spark-1.1.0

  • 我希望有人能告诉我这是我的代码的问题还是dompdf GAE的错误。 下面的代码使用Google App Engine SDK在我的本地开发服务器上工作,但不在live GAE项目上工作。 其他基于文件的图像也可以工作,但我无法让任何base64图像(包括这个简单的示例图像)在线工作。 输出给出一个带有X的框,表示“未找到图像或类型未知”。 有什么想法吗?

  • 我最近几天的问题是,我正在尝试加密我的一些项目,我正在工作。由于Docker对我来说是一个很好的解决方案(如果它在本地运行,它将在远程运行),据我所知,我得到了3层可以实现我的ssl证书。第一层是实例或虚拟机(在我的例子中是本地的,aws或Google)。第二层是Docker守护进程(充当服务器或所有运行容器的管理器),最后一层是运行在jdk-alpine环境(可能是tomcat服务器)上的spr