![]() |
1
1
我认为在这种情况下,你最好的选择可能是Java。USB,虽然是行业标准 协议 在裸金属实施方面绝对没有标准化。出于这个原因,对于您打算支持的每个不同的平台(Windows、Linux、OSX、BSD),您仍然需要一个不同的Java USB实现。当然,您还必须支付代码签名证书的费用,这样您就可以试着说服人们授予您的应用程序所需的访问权限;浏览器很难拒绝访问,而且当今和当今时代的大多数人都非常不愿意授予这种权限。也就是说,有一个旧的IBM文章在各种Java USB项目上进行了很好的阅读。祝你好运。 http://www.ibm.com/developerworks/library/j-usb.html -奥辛 |
![]() |
2
1
可能会很痛,但你可以用 signed Java applet . 签名的Java小程序可以完全访问用户的系统。 Java没有内置的USB支持,所以您可能需要自己滚动。 JNI 与本机USB API的接口。 在小程序中使用JNI可能很棘手。我以前做过。如果你用谷歌搜索这个主题,大多数结果都会说“不要做”或者“你不能做”。好吧,你可以做到。 我就是这样做的:我将本机库(dll等)打包到applet的jar中,然后使用例如的方法从jar中读取本机库。 getResourceAsStream . 然后,我将库写到磁盘上的适当位置(例如,$user.home/.myapp/),然后使用 System.load 加载JNI DLL。 JNI库和小程序可能存在一些类加载器问题。这些问题很微妙,很难解释。它们基本上与这样一个事实有关:一个JVM只能在每个VM实例上加载和绑定一个给定的JNI库一次,但是小程序会被实例化很多,通常使用它们自己的新类加载器,这可能是有问题的。Sun在 Next Generation Browser Plugin 可能已经解除了其中一些问题,但是如果用户使用Java1.60E10或更高版本,则用户只有此问题。 也可以使用 JNA 在签名的小程序中。我不建议使用JNA直接访问USB API。但对于访问简单的本机函数,JNA有时可以节省大量时间。尽管一旦您建立了JNI基础设施,JNA的价值可能会降低。 以下是一些其他随机的想法:
|
![]() |
3
0
到目前为止,我遇到的最好的解决方案是跨浏览器/跨平台插件系统 FireBreath . 这是一个用C++构建的框架,允许您为ActiveX和NPAPI生成插件。 来自同一代码库 . 因此,只需构建一次,就可以运行,它编译成一个DLL,您可以在任意一个环境中部署:ActiveX for IE,NPAPI for Everyone Eleveryone。 |
![]() |
A. Shawkat · 获取请求不起作用 7 年前 |
![]() |
Yura · 无法链接引导。min.css和动态web app 7 年前 |
![]() |
jasonharper · 无互联网连接的WiFi连接设备的最佳实践 7 年前 |
![]() |
Thanh Dong · 在spring boot web应用程序中运行jar文件时,创建名为“ConfigurationPropertiesBindingPostProcessor”的bean时出错 7 年前 |
![]() |
Karim Sawma · react web app中缺少滚动条 7 年前 |
![]() |
Nathan · Flask API回调侦听器 7 年前 |
![]() |
David Artmann · Vaadin网格日期渲染器不适用 7 年前 |
![]() |
Hayden · 如何防止计数器的增量超过元素的高度? 7 年前 |