0

Java Web Startを使用してJavaアプリケーションを実行しているときに、このエラーが発生します。アプリケーションはEclipseで完全に正常に実行されており、アプリケーションはJavaWebStartでも正しくロードされています。コードはファイルチューザーを開こうとしていますが、それができません。

Exception in thread "AWT-EventQueue-0" java.lang.AssertionError
    at sun.awt.shell.Win32ShellFolder2$4.call(Unknown Source)
    at sun.awt.shell.Win32ShellFolder2$4.call(Unknown Source)
    at sun.awt.shell.Win32ShellFolderManager2$ComInvoker.invoke(Unknown Source)
    at sun.awt.shell.ShellFolder.invoke(Unknown Source)
    at sun.awt.shell.Win32ShellFolder2.getIShellFolder(Unknown Source)
    at sun.awt.shell.Win32ShellFolder2.access$200(Unknown Source)
    at sun.awt.shell.Win32ShellFolder2$2.call(Unknown Source)
    at sun.awt.shell.Win32ShellFolder2$2.call(Unknown Source)
    at sun.awt.shell.Win32ShellFolderManager2$ComInvoker.invoke(Unknown Source)
    at sun.awt.shell.ShellFolder.invoke(Unknown Source)
    at sun.awt.shell.Win32ShellFolder2.<init>(Unknown Source)
    at sun.awt.shell.Win32ShellFolderManager2.createShellFolderFromRelativePIDL(Unknown Source)
    at sun.awt.shell.Win32ShellFolder2$11.call(Unknown Source)
    at sun.awt.shell.Win32ShellFolder2$11.call(Unknown Source)
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at sun.awt.shell.Win32ShellFolderManager2$ComInvoker$3.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
4

2 に答える 2

2

わかりましたので、自分の質問に対する答えを見つけました。JNLP ファイルでアサーションを無効にすると、コードは完全に正常に動作し始めました。

私は変わりました

<j2se version="1.5+" java-vm-args="-esa -Xnoclassgc"/>

<j2se version="1.5+" java-vm-args="-dsa -Xnoclassgc"/>

これが他の人にも役立つことを願っています。

于 2012-09-30T04:32:37.683 に答える
2

そのクラスのソースコードを見てください。ステートメントは 2 つしかなくassert、両方とも匿名クラスで発生します。したがって、それらはスタックトレースと完全に一致します

assert(isDirectory());
assert(parent != null);

これらのアサーションを無効にする代わりに、これらの条件が満たされていない理由を確認して修正してください。

于 2012-09-30T07:57:37.087 に答える