gpt4 book ai didi

java - 如何在 Mac 上用 Java 定义框架路径?

转载 作者:行者123 更新时间:2023-11-30 09:24:28 25 4
gpt4 key购买 nike

我正在帮助编写一个跨平台的定格动画程序,在 Windows 上运行良好。对于那些不知道的人来说,定格动画只是动画的一个奇特术语。该程序允许用户将尼康、佳能和网络摄像头插入计算机,并让程序显示现场的实时 View ,然后可以从那里手动控制相机。包含来自佳能相机的框架文件,其路径定义如下所示

import com.sun.jna.Native;
initialization and such

public static EdSdkLibrary EDSDK = (EdSdkLibrary) Native.loadLibrary("Macintosh/EDSDK.framework/EDSDK",EdSdkLibrary.class, options);

在“public static int...”处抛出错误,表示未找到图像。我已经尝试过无数次重新定义路径、移动框架以及使用与我正在使用的框架相同的各种其他框架。请记住,这在 Windows 上运行完美,但在 Mac 上存在问题。

是 mac 上的框架不同,还是它们的定义不同?我已经看过并没有找到其他解决方案。

编辑:好的,我定义了路径,它现在有这个符号 > 旁边没有文字。我现在该怎么办?

编辑:这是说这个 % 不是命令。没有它,它仍然无法工作。

最佳答案

JNA 将根据核心框架名称(在本例中为 EDSDK)依次尝试从 ~/Library/Frameworks、/Library/Frameworks 和/System/Library/Frameworks 加载框架。

如果 loadLibrary 调用成功,则库已找到。如果找不到该库,您将得到一个 UnsatisfiedLinkError

框架基本上是共享库与其他资源的捆绑; ESDK.framework/ESDK 是实际的共享库(对于框架,OSX 省略了通常在 OSX 上的共享库上找到的“dyld”后缀)。

编辑

以下是如何创建符号链接(symbolic link),使路径看起来更像 JNA 所期望的。从终端(运行 Terminal.app):

% ln -s /your/complete/path/to/Macintosh/EDSDK.framework ~/Library/Frameworks/EDSDK.framework

成功完成后,您应该在列出 (ls) 符号链接(symbolic link)时看到以下内容:

% ls -l ~/Library/Frameworks/EDSDK.framework
lrwxrwxr-x 1 YOU YOU 50 Mar 31 01:13 /Users/YOU/Library/Frameworks/EDSDK.framework -> /your/complete/path/to/Macintosh/EDSDK/Framework/EDSDK.framework

您应该在左侧看到符号链接(symbolic link)路径(JNA 将在此处查看),在右侧看到真实文件的路径。如果不是,请删除符号链接(symbolic link)文件并重试。请注意,您可能需要先创建目录 ~/Library/Frameworks;它可能还不存在。

最后,确保您尝试加载的库与您尝试加载的 VM 相匹配; 64 位用 64 位,32 位用 32 位。佳能不提供其库的通用二进制文件,因此您需要指向一个或另一个或使用 lipo 合并两者。 .

关于java - 如何在 Mac 上用 Java 定义框架路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15695786/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com