不同的处理器架构 (x86/x64/ia64) 有不同版本的 sqljdbc_auth.dll。您在 SFS 服务器上使用的是哪一个?
您必须选择一个与运行 SFS 的 JVM 体系结构相匹配的一种。因此,如果您在 64 位机器上运行 32 位 Java,您将需要 x86 版本,而不是 x64 版本。
我之前没有用过SFS,所以不知道它是否会在任何地方写入任何日志。如果是这样,可能值得查看这些日志,看看是否有任何有用的信息写入它们。
编辑:我不能 100% 确定 SFS 使用的是 64 位 Java,因为它用完了 C:\Program Files 而不是 C:\Program Files (x86)。
我在简介 > 要求和安装下的SFS 文档中找到了以下行。虽然这一行仅适用于 Linux 而不是 Windows,但它可能表明 Windows 上的 SFS 也使用 32 位 Java:
自 1.5 版以来,SmartFoxServer 带有自己的 x86 32 位 Sun Java Runtime。
确定您安装的 Java 版本的一种快速方法是,在您的 cmd 中输入以下命令:Java -version
它将向控制台显示以下内容:
C:\Users\967097>java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
在这里,您可以看到安装的 java 版本的位类型。
如果您使用 x86 版本的 sqljdbc_auth.dll 而不是 x64 版本,您的应用程序是否可以工作?如果它突然开始使用 x86 DLL,则 SFS 必须使用 32 位 Java。
是否有用于启动 SFS 的批处理文件?如果是这样,通读它可能有助于指出 SFS 从哪里运行 Java。还要注意对PATH
. Java 只能在java.library.path
系统属性中加载 DLL,而在 Windows 上,这被设置为PATH
环境变量的值。
如果您仍然无法确定 SFS 使用的是 32 位还是 64 位 Java,请尝试使用 Process Explorer 查看运行 SFS 的 java.exe 进程的启动环境。