首页 文章

Java Web Start可以安装Windows驱动程序,还可以将dll和jar复制到Java目录中吗?

提问于
浏览
2

我的Java FX2应用程序配置串行设备,作为部署的一部分,它必须安装Windows设备驱动程序并将本机库(RxTx串行端口库)复制到Java目录中 .

Java Web Start可以处理吗?或者用户应该分阶段执行:手动安装驱动程序,然后通过libs复制,然后通过Web Start安装应用程序 .


Update: 下面的MyApp.jar是自签名的 . 我将dll放在项目名称下 . 我在jnlp中为dll添加了这一行 . 我正在使用Netbeans 7.3,所以把VM args行 . 我的jnlp看起来像这样:

<resources>
    <j2se version="1.6+" java-vm-args="-Djava.library.path=. "  href="http://java.sun.com/products/autodl/j2se"/>
    <jar href="MyApp.jar" size="216992" download="eager" />
    <jar href="lib/RXTXcomm.jar" size="66493" download="eager" />
    <nativelib  href="rxtxSerial.dll" size="122880" download="eager" />
  </resources>
<security>
  <all-permissions/>
</security>

我可以在Netbeans IDE中运行该应用程序 . 但是,单击jnlp,我得到弹出窗口,'运行时错误' . 它要求我点击查看详细信息,但没有显示任何内容 . 我在Java控制面板的Temporary Internet Files中删除了之前的jnlps . 在Java控制台中,我什么也看不见 .

@AndrewThompson我试过Janela检查jnlp . 有用的工具!我看到dll没有进入dist文件夹 . jnlp由NB 7.3生成 . 有没有办法让它为nativelib排队?我每次都必须手动完成 . `

JaNeLA报告 - 版本11.05.17文件报告:/ D:/Profiles/Anil/My%20Documents/NetBeansProjects/MyApp/dist/MyApp.jnlp内容类型application / xml不等于应用程序的预期类型/ x-java- jnlp-file cvc-complex-type.2.4.a:从元素'jfx:javafx-runtime'开始发现无效内容 . 其中一个'{java,j2se,jar,nativelib,extension,property,package}'是预期的 . cvc-complex-type.2.4.a:从元素'jfx:javafx-runtime'开始发现无效内容 . 其中一个'{java,j2se,jar,nativelib,extension,property,package}'是预期的 . cvc-complex-type.2.4.a:从元素'security'开始发现无效内容 . 其中一个'{resources,application-desc,applet-desc,component-desc,installer-desc}'是预期的 . cvc-complex-type.2.4.a:从元素'security'开始发现无效内容 . 其中一个'{resources,application-desc,applet-desc,component-desc,installer-desc}'是预期的 . XML编码未知,但声明为未指定的utf-8 Codebase . 默认为文件:/ D:/ Profiles / Anil / My%20Documents / NetBeansProjects / MyApp / dist /可以通过删除download ='eager'的(默认)值来优化MyApp.jar中的资源下载 . 可以通过删除main ='false'的(默认)值来优化MyApp.jar中的资源下载 . 有可能优化应用程序的启动 . 通过为MyApp.jar资源指定download ='lazy' . 除非指定了下载“部分”,否则延迟下载可能无法按预期为MyApp.jar工作 . 资源'lib / RXTXcomm.jar'声明为大小'66490',但实际上是'66512' . 可以通过删除download ='eager'的(默认)值来优化lib / RXTXcomm.jar上的资源下载 . 可以通过删除main ='false'的(默认)值来优化lib / RXTXcomm.jar上的资源下载 . 有可能优化应用程序的启动 . 通过为lib / RXTXcomm.jar资源指定download ='lazy' . 除非指定了下载“部分”,否则延迟下载可能无法按预期运行lib / RXTXcomm.jar . 获取资源rxtxSerial.dll时出现问题 . D:\ Profiles \ Anil \ My Documents \ NetBeansProjects \ MyApp \ dist \ rxtxSerial.dll(系统找不到指定的文件)`

我将dll放入一个 jar 里,并添加 System.loadLibrary("./rxtxSerial"); 那也失败了 .

2 回答

  • 0

    只要您保留在沙箱(未签名的应用程序)中,您将无法访问本地文件系统 . 关于设备驱动程序安装,我认为签名的应用程序也可以这样做,但它可能会触发Windows确认 .

    http://docs.oracle.com/javase/tutorial/deployment/doingMoreWithRIA/security.html

  • 0

    有用的是这个

    使用更简单的方法(确认在使用NetBeans或Borland JBuilder时工作):添加RXTXcomm.jar作为库编译(构建)您的应用程序将rxtxSerial.dll添加到分发文件夹的根目录(使用NetBeans时为projectname / dist)

    来自维基http://rxtx.qbang.org/wiki/index.php/Deploying_JAVA_with_RXTX

    (安德鲁)在jnlp中放置'nativelib'指令的建议不起作用 .

相关问题