我的Java FX2应用程序配置一个串行设备,作为部署的一部分,它必须安装一个RxTx设备驱动程序,并将本机libs (RxTx串行端口库)复制到Java中。
能处理吗?或者用户应该分阶段完成:手动安装驱动程序,然后复制libs,然后通过Web安装应用程序。
更新:下面的 MyApp.jar是自签名的.我将dll放在项目名称下。我在jnlp中为dll添加了这一行。我使用的是Netbeans 7.3,所以把VM行放进去。我的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控制面板中的临时Internet文件中的jnlps。在Java控制台中,我什么也没看到。
@AndrewThompson我试过Janela检查jnlp。有用的工具!我看到dll没有进入dist文件夹。jnlp由NB 7.3生成。有什么办法可以让它进入本土的行列吗?每次我都要手工操作。`
JaNeLA报告- 11.05.17版 file:/D:/Profiles/Anil/My%20Documents/NetBeansProjects/MyApp/dist/MyApp.jnlp报告 内容类型application/xml不等于预期类型的application/xml文件cvc-complex.2.4.a:从元素‘jfx:javafx-运行时’找到无效的内容。一个'{java,j2se,jar,nativelib,扩展名,属性,包}‘是预期的。找到无效的内容,从元素‘jfx:javafx-运行时’开始。一个'{java,j2se,jar,nativelib,扩展名,属性,包}‘是预期的。2.4.a:找到无效的内容,从元素'security‘开始。“{resources,application-desc,applet-desc,component-desc,installer-desc}”之一是预期的.2.4.a:找到无效的内容,从元素'security‘开始。“{resources,application-desc,applet-desc,component-desc,installer-desc}”之一是预期的.XML编码不知道,但声明为utf-8代码基未指定。默认为file:/D:/Profiles/Anil/My%20Documents/NetBeansProjects/MyApp/dist/,可以通过删除下载=‘MyApp.jar’的(默认值)值来优化MyApp.jar上的资源下载。可以通过删除main='false‘的(默认值)值来优化MyApp.jar上的资源下载。优化应用程序的启动可能是可能的。通过为MyApp.jar资源指定download=‘惰性’。除非指定了下载“部件”,否则延迟下载可能不会像MyApp.jar预期的那样工作。资源'lib/RXTXcomm.jar‘声明为'66490’,但实际上是'66512‘。在lib/RXTXcomm.jar中的资源下载可以通过删除下载=‘急切’的(默认值)值来优化。可以通过删除main='false‘的(默认值)值来优化lib/RXTXcomm.jar中的资源下载。优化应用程序的启动可能是可能的。通过为lib/RXTXcomm.jar资源指定download=‘懒惰’。对于lib/RXTXcomm.jar,除非指定了下载“部件”,否则延迟下载可能无法正常工作。获取资源rxtxSerial.dll的问题。D:\Profiles\Anil\My Documents\NetBeansProjects\MyApp\dist\rxtxSerial.dll (系统找不到指定的文件)
我将dll放入一个jar中,并添加了同样失败的System.loadLibrary("./rxtxSerial");。
发布于 2013-03-07 11:09:28
只要您停留在沙箱中(未签名的应用程序),您将无法访问本地文件系统。关于设备驱动程序的安装,我认为签名的应用程序也能做到这一点,但它可能会触发Windows确认。
请参阅http://docs.oracle.com/javase/tutorial/deployment/doingMoreWithRIA/security.html
发布于 2013-03-11 15:24:20
这起作用的是
使用更简单的方法(确认在使用NetBeans或Borland JBuilder时工作): 将RXTXcomm.jar添加为库 编译(构建)应用程序 使用(projectname/dist ()时,将rxtxSerial.dll添加到分发文件夹的根目录
来自wiki RXTX
在jnlp中放置“nativelib”指令的建议(来自Andrew)是行不通的。
https://stackoverflow.com/questions/15258288
复制相似问题