首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有办法在OS中获取智能卡列表吗?

有办法在OS中获取智能卡列表吗?
EN

Stack Overflow用户
提问于 2014-06-29 22:29:21
回答 1查看 168关注 0票数 0

我正在实现一个applet,它从用户那里获取一些信息,包括您的名字、系统管理员、机器体系结构以及更多的证书和智能卡插入列表,所有这些都是为了检查另一个applet的先决条件。

在Windows中,所有的功能都很完美,但是我在MAC (OS )中获取智能卡信息时遇到了问题,这可能是由这个bug:Bug DB:- JDK-7195480 : javax.smartcardio不检测Mac上的卡引起的。

我找到了以下可能的解决办法(我认为):

  1. 使用另一个没有bug的库作为https://github.com/intarsys/smartcard-io
  2. 我看了这些讨论:

对于第一种情况,我遇到了将lib编译到version 7的问题,我需要将它编译到version 6,我没有成功地为6编译,而额外的JAR太大了(+- 4MB)。

对于第二种情况,这显然不适用于Windows ( does 6 docs指南javaws developersguide语法),而且显然有一些限制.

有人知道另一个库(在Java 6中)来获取智能卡信息吗?我只需要读取器名,卡名和ATR。

或者有人会知道如何迫使JVM从Applet (简单的方法)?

请尽量澄清,因为我是Java的初学者!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-30 11:06:11

..Or会有人知道如何迫使JVM从Applet (简单的方法)?

我们不能强迫用户做任何事情(不是我们应该做的),但是通过使用Java Web Start启动applet,我们可以请求特定版本的JRE。这是一份破旧的报告。

Java运行时版本控制

Java可用于确保应用程序获得运行所需的JRE ()的最低版本。Web还可以用于确保应用程序可以使用特定的JRE微版本,或者使用早期的主要版本(例如,在安装了1.6的系统上使用1.3 )。

除非系统配置正确,否则可能会提示用户下载。

最低版本

Java可以用来确保Java项目是用特定的最低版本Java启动的。例如,如果应用程序使用泛型,但除了Java1.5中可用的之外,其他任何东西都不使用,JNLP部署描述符可能包含一个部分,即..。

代码语言:javascript
复制
..
<resources>
    <j2se version='1.5+'>
...
</resources>

微版

部署人员除了能够指定最小的Java主版本之外,还可以强制执行特定的微版本。这方面的一个例子可以在基于关于夏令节约时间的新信息的JRE的更改中看到(这些信息可以由地区政府在任何时候更改)。

代码语言:javascript
复制
..
<resources>
    <j2se version='1.5.0_11'>
...
</resources>

早期版本

Web有一个方便的特性,它允许我们根据特定的早期Java版本测试应用程序。例如,如果本地构建环境的基础是1.6,但应用程序应该是1.5+,那么在部署之前在1.5JRE中测试最终产品是值得的。在1.6环境中调用1.5JRE可以非常简单。

代码语言:javascript
复制
..
<resources>
    <j2se version='1.5'>
...
</resources>

注意第一个示例的不同之处,它使用' 1.5 +',而这个示例使用'1.5‘-表明只有1.5JRE才行。

另一个版本..。

代码语言:javascript
复制
..
<resources>
    <j2se version='1.5*'>
...
</resources>

下载提示

通过web部署应用程序的人通常报告的一个问题是,这些应用程序被提示下载已经在本地安装的Java版本。

即使安装了特定的Java版本,也可能不会将其标记为“可供web使用”。这件事很容易解决。

打开Java

选择选项卡,并单击的视图按钮。你可能会看到这样的东西。

注意哪些是启用(右列)。此PC设置为使用1.6.01.5.0_111.5.0_081.5.0-beta1.5.0_01的微版本都不可用。这完全是我的选择--如果我需要对这些早期的1.5版本进行测试,我可以根据需要启用它们。

确保所有感兴趣的版本都是启用,并且问题应该得到解决。Web将能够加载该版本的JRE并使用它,而无需任何下载提示。

如果安装了没有出现在用户列表中的版本,请单击Find以启动JRE 来搜索它们。(Java1.6) JRE将显示一个对话框,其中包含以下内容的消息。

为了启动应用程序,Java需要知道安装的Java环境的位置。 您可以选择一个已知的JRE,也可以在文件系统中选择一个目录来搜索JRE。

网络启动论坛上的帖子还发表了Andy的以下评论。

在Windows上,可用的JRE列表是从注册表中填充的,注册表包含指向所有公开安装的JRE的指针。(它不会自动包括私有JRE,比如JDK安装的JRE,其中没有选择“install public JRE”。) 在unix上,默认情况下,它只包含它附带的JRE以及java安装的任何JRE,或者包含以前运行过的任何以前版本的java。

他补充了关于指定下载源的进一步说明。

使用以下两种方法:

代码语言:javascript
复制
<j2se version="1.5*" href="http://java.sun.com/products/autodl/j2se">

代码语言:javascript
复制
<j2se version="1.5" >

将为您提供系统上的任何1.5版本。 如果使用href属性,则需要特定的更新版本,所以..。

代码语言:javascript
复制
<j2se version="1.5" href="http://java.sun.com/products/autodl/j2se">

..will只与1.5.0_00一起工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24480844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档