1

コマンドラインで入力してPlay1.2.5(1.2.4も試しました)を使用して依存関係を解決しようとするとplay dependencies、次のエラーが発生します。

~ 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を見つけようとしていますが、長い間それを行っていません 。ネイティブメソッド定義を含むdllはjava.dll、jdk \ jre\binまたはjre\binにあります。

さまざまなテストから、まったく同じ問題を再現することはできませんでした。おそらく、dllロードパスに、playで使用されるjava.exeのバージョンとは異なるバージョンのjava.dllが含まれていると思います。

最も速いのは、playで使用されるjre/jdkを再インストールすることです。

于 2012-10-17T17:15:07.753 に答える
1

問題はおそらく、遊びではなく、Javaのインストールに起因します。別のバージョンのJava(別のJDK)を使用してみましたか?どのバージョンを使用していますか?

別のJDKをインストールして、新しいバージョンを指すPATHように構成し、この新しいJavaバージョンを使用してplayを再実行してみてください。java

于 2012-10-17T17:11:09.487 に答える