Java Web Start应用程序反复请求不存在的文件

Java Web Start应用程序反复请求不存在的文件,java,java-web-start,Java,Java Web Start,我用NetBeans作为javawebstart应用程序开发的所有应用程序的行为都非常奇怪。当我将它们作为普通应用程序运行时,一切正常 但当我将它们编译为java web start应用程序时,它们在java web start加载完成后,会反复向服务器请求错误位置的库。在小项目中这似乎无关紧要,但在大项目中这会造成巨大的时间差异(见我的第一个问题) 我放了一个简单的NetBeans项目。它应该在窗口上画一个按钮,这个按钮什么都不做。(如果您试图将其放置在某个位置,请将dist文件夹上载到某个位

我用NetBeans作为javawebstart应用程序开发的所有应用程序的行为都非常奇怪。当我将它们作为普通应用程序运行时,一切正常

但当我将它们编译为java web start应用程序时,它们在java web start加载完成后,会反复向服务器请求错误位置的库。在小项目中这似乎无关紧要,但在大项目中这会造成巨大的时间差异(见我的第一个问题)

我放了一个简单的NetBeans项目。它应该在窗口上画一个按钮,这个按钮什么都不做。(如果您试图将其放置在某个位置,请将
dist
文件夹上载到某个位置,然后编辑
.jnlp
文件)

您可以从日志(在logs.txt中)中看到,lib最初是从
/awindow\u dist/lib/
下载的,但随后有很多请求被发送到了错误的位置
/awindow\u dist/
。有什么不对劲?一切似乎都配置得很好


这是一个NetBeans错误吗?WebStart bug?还是我的错?

好吧,这肯定是NetBeans中的一个bug,很可能是NB生成的build.xml文件中的bug

我在build.xml、build-impl.xml和jnlp-impl.xml中迷失了方向,但我在NetBeans中开始使用Java Web的肮脏解决方法是:

  • 将生成的JNLP复制到某个地方,因为它很好
  • 关闭NetBeans项目中的JWS
  • 与其让NetBeans对.jar文件进行签名,不如编写一些类似这样的shell脚本

    antclean
    蚂蚁罐
    #因为这两个很好用
    对于'ls dist/*.jar中的i;ls dist/lib/*.jar`
    做
    jarsigner-storepass mystorepass-keypass mykeypass$i myname
    #在所有的罐子上签名
    完成
    cp launch.jnlp dist/launch.jnlp
    #复制.jnlp文件
    
  • 使脚本成为build.xml中的目标,如


  • 完成了。这是一个肮脏的攻击,只适用于bash,因为我真的不知道ant是如何工作的+由netbeans生成的构建文件非常复杂。但是它完成了工作。

    好的,这肯定是NetBeans中的一个bug,很可能是NB生成的build.xml文件中的bug

    我在build.xml、build-impl.xml和jnlp-impl.xml中迷失了方向,但我在NetBeans中开始使用Java Web的肮脏解决方法是:

  • 将生成的JNLP复制到某个地方,因为它很好
  • 关闭NetBeans项目中的JWS
  • 与其让NetBeans对.jar文件进行签名,不如编写一些类似这样的shell脚本

    antclean
    蚂蚁罐
    #因为这两个很好用
    对于'ls dist/*.jar中的i;ls dist/lib/*.jar`
    做
    jarsigner-storepass mystorepass-keypass mykeypass$i myname
    #在所有的罐子上签名
    完成
    cp launch.jnlp dist/launch.jnlp
    #复制.jnlp文件
    
  • 使脚本成为build.xml中的目标,如

  • 完成了。这是一个肮脏的攻击,只适用于bash,因为我真的不知道ant是如何工作的+由netbeans生成的构建文件非常复杂。但它完成了工作