Java JNI:此操作仅在应用程序容器的上下文中有效

Java JNI:此操作仅在应用程序容器的上下文中有效,java,windows,java-native-interface,Java,Windows,Java Native Interface,在Mac上无法使用JNI功能后,我决定在windows上试用。我编译了我的DLL,并将其放入java.library.path,就像我在Mac上做的那样 现在。。Java给了我这个错误: Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\path\to\dll\TheDll.dll: This operation is only valid in the context of an app container 此操作仅在

在Mac上无法使用JNI功能后,我决定在windows上试用。我编译了我的DLL,并将其放入
java.library.path
,就像我在Mac上做的那样

现在。。Java给了我这个错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\path\to\dll\TheDll.dll: This operation is only valid in the context of an app container
此操作仅在应用程序容器的上下文中有效

什么?我试过用谷歌搜索这个,但是没有相关的结果。奇怪的是,它在Mac电脑上运行得很好


这是什么原因造成的?

结果表明,错误消息是由Windows生成的,是由这一点古怪引起的:


我是作为Windows应用商店DLL而不是Win32 DLL编译的。可笑,但至少我找到了答案。

结果表明,错误消息是由Windows生成的,是由这一点古怪引起的:


我是作为Windows应用商店DLL而不是Win32 DLL编译的。可笑,但至少我找到了答案。

你需要给我们提供更多信息。正在调用什么方法?什么在Mac上不起作用?Mac电脑上有什么功能?你是如何运行该应用程序的?@maba该方法是
SDLMain.init()
,它在Mac上成功调用了该方法,但该方法的内容没有调用。在windows上,仅调用该方法会引发此问题。您需要向我们提供更多信息。正在调用什么方法?什么在Mac上不起作用?Mac电脑上有什么功能?你是如何运行该应用程序的?@maba该方法是
SDLMain.init()
,它在Mac上成功调用了该方法,但该方法的内容没有调用。在windows上,仅调用该方法会引发此错误。对于DLL,我也有相同的错误。我已经创建了一个Windows应用商店DLL项目,现在我想将其更改为Win32 DLL,但在Visual Studio 2012中找不到需要更改的编译器/链接器选项。你能帮助我吗?Thanks@MaximeViargues我刚刚启动了一个“新Win32项目”,在安装向导中选择DLL选项。很抱歉,我不知道如何将现有的Windows应用商店DLL转换为Win32,但如果所有其他操作都失败,您可以创建一个新项目并复制代码。对不起,如果我没有任何帮助。谢谢你,我有完全相同的问题。我有一个DLL相同的错误。我已经创建了一个Windows应用商店DLL项目,现在我想将其更改为Win32 DLL,但在Visual Studio 2012中找不到需要更改的编译器/链接器选项。你能帮助我吗?Thanks@MaximeViargues我刚刚启动了一个“新Win32项目”,在安装向导中选择DLL选项。很抱歉,我不知道如何将现有的Windows应用商店DLL转换为Win32,但如果所有其他操作都失败,您可以创建一个新项目并复制代码。如果我帮不上忙,很抱歉。谢谢你,我也有同样的问题。