1

每次我尝试通过play dependencies在命令行键入使用 Play 1.2.5(也尝试过 1.2.4)来解决依赖关系时,都会收到以下错误:

~ Resolving dependencies using C:\Workspace\moosejuice\conf\dependencies.yml,
~
Exception in thread "main" java.lang.UnsatisfiedLinkError: java.io.WinNTFileSystem.createFileExclusively(Ljava/lang/String;Z)Z
        at java.io.WinNTFileSystem.createFileExclusively(Native Method)
        at java.io.File.checkAndCreate(Unknown Source)
        at java.io.File.createTempFile0(Unknown Source)
        at java.io.File.createTempFile(Unknown Source)
        at org.apache.ivy.plugins.resolver.RepositoryResolver.findResourceUsingPattern(RepositoryResolver.java:104)
        at org.apache.ivy.plugins.resolver.AbstractPatternsBasedResolver.findResourceUsingPatterns(AbstractPatternsBasedResolver.java:93)
        at org.apache.ivy.plugins.resolver.AbstractPatternsBasedResolver.findIvyFileRef(AbstractPatternsBasedResolver.java:72)
        at org.apache.ivy.plugins.resolver.BasicResolver.getDependency(BasicResolver.java:223)
        at org.apache.ivy.core.resolve.IvyNode.loadData(IvyNode.java:169)
        at org.apache.ivy.core.resolve.VisitNode.loadData(VisitNode.java:287)
        at org.apache.ivy.core.resolve.ResolveEngine.fetchDependencies(ResolveEngine.java:696)
        at org.apache.ivy.core.resolve.ResolveEngine.doFetchDependencies(ResolveEngine.java:781)
        at org.apache.ivy.core.resolve.ResolveEngine.fetchDependencies(ResolveEngine.java:704)
        at org.apache.ivy.core.resolve.ResolveEngine.getDependencies(ResolveEngine.java:576)
        at org.apache.ivy.core.resolve.ResolveEngine.resolve(ResolveEngine.java:237)
        at org.apache.ivy.core.resolve.ResolveEngine.resolve(ResolveEngine.java:195)
        at play.deps.DependenciesManager.resolve(DependenciesManager.java:341)
        at play.deps.DependenciesManager.main(DependenciesManager.java:39)

即使对于新创建的项目,我也会收到此错误,而dependencies.yml. cmd.exe我想这可能是一个权限问题,但我可以在任何这些文件夹上看到没有限制,而且我在管理模式和普通模式下都试过。

我很确定我之前已经解决了对这台机器的依赖;有什么可能改变给我这个错误?

编辑: 我现在已经测试了它是否是防病毒程序、防火墙或微软安全,但即使所有这些都关闭,也没有骰子。

4

2 回答 2

2

java.lang.UnsatisfiedLinkError

Thrown if the Java Virtual Machine cannot find an appropriate native-language definition of a method declared native.

此异常意味着 jvm 无法解析createFileExclusivelyjava.io.WinNTFileSystem 上的本机方法

这听起来很像 DLL 加载问题,调试起来很麻烦。我正在尝试找到包含链接方法的 dll,但我很久没有这样做了 包含本机方法定义的 dlljava.dll在 jdk\jre\bin 或 jre\bin 中

从各种测试中,我无法重现完全相同的问题。我会说您的 dll 加载路径中可能有一个 java.dll,其版本与 play 使用的 java.exe 版本不同。

最快的方法是重新安装 play 使用的 jre/jdk。

于 2012-10-17T17:15:07.753 回答
1

问题可能来自您的 Java 安装,而不是来自游戏。您是否尝试过使用另一个版本的 Java(另一个 JDK)?你用的是什么版本?

您可以安装另一个 JDK 并配置指向较新版本的 JDK,然后尝试使用此新 Java 版本再次运行 play PATHjava

于 2012-10-17T17:11:09.487 回答