为什么安装不了javauri,电脑安装Java,提示找不到URL,怎么解决
大家好,关于为什么安装不了javauri很多朋友都还不太明白,今天小编就来为大家分享关于电脑安装Java,提示找不到URL,怎么解决的知识,希望对各位有所帮助!
电脑安装Java,提示找不到URL,怎么解决
这个错误可能是由于您的电脑无法连接到 Java的安装服务器,导致无法下载安装文件。下面是一些可能的解决方案:
确保您的电脑已连接到互联网。
确保您使用的浏览器是最新版本。
检查您的网络代理设置,确保没有被设置为阻止下载。
尝试在私有网络或无线网络上尝试安装。
尝试使用其他电脑或网络进行安装。
尝试手动下载安装文件并运行安装程序。
如果以上解决方案都不能解决问题,建议您联系Java官网或请教技术专家来帮助解决。
javascript+encodeuri+java怎么解析
要解析JavaScript中的
encodeURIComponent()
函数在Java中的等效方法,您可以使用Java中的java.net.URLEncoder
类的encode()
方法。该类提供了一些静态方法,可以将字符串编码为application/x-www-form-urlencoded
格式。这是一种常见的编码格式,用于在HTTP请求中发送数据。
下面是一个示例代码片段,演示如何使用Java中的
URLEncoder
类来模拟JavaScript中的encodeURIComponent()
函数:
import java.net.URLEncoder;public class Example{ public static void main(String[] args){ String url="https://www.example.com/search?q="; String searchTerm="java programming"; String encodedTerm= null; try{ encodedTerm= URLEncoder.encode(searchTerm,"UTF-8");} catch(Exception e){ e.printStackTrace();} String fullUrl= url+ encodedTerm; System.out.println(fullUrl);}}
在上面的示例中,我们使用了Java中的
URLEncoder
类来对搜索术语进行编码。我们使用UTF-8
字符集对搜索术语进行编码,以确保它们能够正确处理。最后,我们将编码的搜索术语添加到URL中,以便在浏览器中打开时进行搜索。
请注意,Java中的
URLEncoder
类与JavaScript中的encodeURIComponent()
函数并不完全相同。在某些情况下,它们可能会产生略微不同的结果。例如,Java的URLEncoder
类将空格编码为+
,而encodeURIComponent()
函数将空格编码为%20
。因此,在使用Java中的URLEncoder
类时,请确保您的代码与您要模拟的JavaScript函数的行为相匹配。
如果您需要将URL参数解码为原始字符串,则可以使用Java中的
java.net.URLDecoder
类的decode()
方法。这个类与URLEncoder
类非常相似,但是它可以将编码的字符串解码为原始字符串。下面是一个示例代码片段,演示如何使用URLDecoder
类解码URL参数:
import java.net.URLDecoder;public class Example{ public static void main(String[] args){ String encodedString="java+programming"; String decodedString= null; try{ decodedString= URLDecoder.decode(encodedString,"UTF-8");} catch(Exception e){ e.printStackTrace();} System.out.println(decodedString);}}
在上面的示例中,我们使用了Java的
URLDecoder
类的decode()
方法来解码一个编码的字符串。在这个例子中,我们将编码的字符串"java+programming"
解码为原始字符串"java programming"
。
如果您需要在Java中将对象序列化为JSON格式,您可以使用许多不同的库和框架。其中一种流行的选择是Google的Gson库。下面是一个示例代码片段,演示如何使用Gson库将Java对象序列化为JSON格式:
import com.google.gson.Gson;public class Example{ public static void main(String[] args){ Person person= new Person("John","Doe", 30); Gson gson= new Gson(); String json= gson.toJson(person); System.out.println(json);}}class Person{ private String firstName; private String lastName; private int age; public Person(String firstName, String lastName, int age){ this.firstName= firstName; this.lastName= lastName; this.age= age;}}
在上面的示例中,我们使用了Gson库的
toJson()
方法将一个Java对象(在这个例子中是Person
类的一个实例)序列化为JSON格式的字符串。
如果您需要在Java中将JSON格式的字符串反序列化为Java对象,则可以使用
Gson库的
fromJson()
方法。下面是一个示例代码片段,演示如何使用Gson库将JSON格式的字符串反序列化为Java对象:
import com.google.gson.Gson;public class Example{ public static void main(String[] args){ String json="{\"firstName\":\"John\",\"lastName\":\"Doe\",\"age\":30}"; Gson gson= new Gson(); Person person= gson.fromJson(json, Person.class); System.out.println(person.getFirstName()); System.out.println(person.getLastName()); System.out.println(person.getAge());}}class Person{ private String firstName; private String lastName; private int age; public String getFirstName(){ return firstName;} public String getLastName(){ return lastName;} public int getAge(){ return age;}}
在上面的示例中,我们使用了Gson库的
fromJson()
方法将一个JSON格式的字符串反序列化为一个Java对象(在这个例子中是Person
类的一个实例)。
希望这些示例可以帮助您更好地理解Java中的编码和解码,以及将Java对象序列化为JSON格式和反序列化为Java对象的过程。
为什么我的电脑不能运行java web start
Java Web Start是帮助客户机端应用程序开发的一个新技术,它的独特之处在于将您从关心客户机是如何启动的(从 Web浏览器或是桌面)中解放出来。另外,该技术提供了一个使 Web服务器能独立的分发和更新客户机代码的集合部署方案。软件工程师 Steve Kim介绍了该新技术(该技术预定将集成进Java 1.4的最终发行版),并从开发者和用户的角度进行了描述。您可以在讨论论坛与作者和其他读者分享您对这篇文章的看法。
在现今的不断发展的软件业市场,用户强烈要求客户机应用程序不但能运行在台式机环境,还能运行在因特网。用户希望他们从基于 Web的应用程序获得与从台式机获得的相同的功能和支持,而且最好是用瘦客户机接口打包。目前,最通用的解决方案是开发两个独立的 Java应用程序:一个作为台式机应用程序执行,另一个模仿台式机应用程序的多数功能,但是通过 Web访问。这对开发者是个负担,开发者要写两个独立的在不同的执行环境执行相同的功能的应用程序,然而对软件公司也是个财政负担,软件公司被迫为两个独立的应用程序提供支持。为缓解该问题,Sun Microsystems引进了 Java Web Start,它是个使 Java应用程序可以从台式机或 Web页面启动的客户机端技术。这消除了为 Web应用程序开发 Java支持的需要,而且还提供了一个有效方式来升级、维护和管理任何通用的 Web服务器都支持的客户端的 Java应用程序。
什么是 Java Web Start?
Java Web Start是一个软件技术,它包含了 applet的可移植性、Servlet和 JavaServer Pages(JSP)的可维护性以及象 XML和 HTML这样的标记语言的简易性。它是基于 Java的应用程序,允许从标准的 Web服务器启动、部署和更新功能完全的 Java 2客户机应用程序。在第一次启动 Java Web Start时,用户可以从 Web下载新的客户机应用程序;之后这些应用程序可以通过 Web页面的链接或(Windows中的)桌面图标或“开始”菜单初始化。应用程序在 Java Web Start下快速初始化,被高速缓存在客户机,并且可以远程的离线启动。另外,因为 Java Web Start是从 Java 2技术建立起来的,所以它继承了 Java平台的完整的安全性体系结构。
由于 Java Web Start自身是一个 Java应用程序,所以该软件是平台独立的,并且支持 Java 2平台的任何客户机系统都支持该软件。当客户机应用程序启动时,Java Web Start自动执行更新,在从原来的高速缓存(倘若存在高速缓存)装入应用程序的同时,从 Web下载最新的代码。Java Web Start还提供了一个 Java应用程序管理器(Java Application Manager)实用程序,既提供了多种选项,如清除下载的应用程序的高速缓存、指定多种 JRE的使用、设置 HTTP代理,还允许最终用户组织他们的 Java应用程序。
回页首
Java Web Start对 Java插件
Java Web Start和 Java插件的一个共同作用是:允许 Java程序从任何地方、在任何平台安全运行。两种 Java技术都提供了可以启动和执行 Java程序的“沙箱(sandbox)”安全环境,还具有高速缓存应用程序和指定使用的 JRE的能力。Java Web Start和 Java插件的根本不同是 Java插件限于在 Web浏览器环境中运行的 Java applet。Java插件严重的依赖于 Web浏览器的 JRE,并且如果没有浏览器就不能运行。另一方面,Java Web Start可以在 Web页面单击链接或是单击 Java应用程序管理器来启动 Java应用程序。在 Windows操作系统中,用户可以从开始菜单或是只要双击桌面图标来启动应用程序。如果浏览器窗口被关闭,从 Web浏览器启动的客户机应用程序不会受到影响。
尽管 Java Web Start确实支持 Java applet,而且确实包含内置的 Appletviewer,但这个技术的最初目的是启动和部署 Java客户机应用程序。某些约束,如 applet的策略文件不受支持。
回页首
用户观点的 Java Web Start
Java Web Start不仅允许开发者开发可从 Web页面启动和执行的应用程序(不只是 applet),还强调了无需任何用户交互就可以为现存的客户机代码提供透明更新的部署方案。为帮助您理解这个过程、帮助您决定是否为与 Java Web Start的兼容性而开发自己的应用程序,我们将从用户的观点来看这个产品。我将从两个基本的用户场景(安装 Java Web Start和从使用 Java Web Start的 Web下载和启动应用程序)的基本解释开始。
首次安装 Java Web Start
Java插件无需用户在客户机安装任何的应用程序,与 Java插件不同,Java Web Start必须要安装在每台用于从 Web来启动 Java应用程序的客户机。当用户试图用 Java Web Start启动一个基于 Web的应用程序时,Web浏览器将启动 Java Web Start从而开始下载适当的文件。
如果 Java Web Start安装在本地机的话,那么需要的应用程序将正常的启动和进行。另一方面,如果 Java Web Start还没安装,用户将被提示要下载该程序。一旦用户同意下载 Java Web Start并且已经下载了该文件,用户就必须运行程序来安装 Java Web Start,如图 1所示。
图 1.安装 Java Web Start
在安装过程中,Java Web Start安装程序将判断在客户机上是否安装了 Java 2环境。如果未安装,将出现一个安装对话框,如图 2所示。
图 2. Java Web Start搜索 Java 2环境
一旦装好了 Java Web Start,就必须关闭所有的打开的 Web浏览器。新的 MIME标记(带有 jnlp扩展名)是为 Web浏览器定义的,用于 Web浏览器启动自身(Web服务器)和 Java Web Start之间的联系。(JNLP是 Java Network Launching Protocol的首字母缩略字。JNLP文件确定哪些 JAR文件和资源有助于客户端的 Java应用程序。)一旦 Web浏览器被关闭并重新启动,用户可以再次单击相同的链接来启动所要的应用程序。Web浏览器然后将与 Java Web Start联系,并且应用程序将开始启动过程。
“Developer's Guide for Java Web Start”(请参阅参考资料)包含能够查出本地是否安装了 Java Web Start的 JavaScript和 Visual Basic脚本。
用 Java Web Start启动应用程序
当用户首次单击一个链接来启动一个客户端的 Java应用程序时,发生下面的过程:
Web浏览器被指示运行 Java Web Start。
Java Web Start以启动闪屏开始
然后 Java Web Start与指定的 Web服务器联系,并且确定是否为所要的 Java应用程序下载了所有的文件。
把适当的文件下载到本地机。
Java Web Start运行下载的应用程序。
在整个安装和启动过程中,Java Web Start与 Java Web Start应用程序管理器一起提供了一个外观和感觉一致的界面,同时还向用户提供了反馈。图 3表示了当 Java Web Start首次试图启动一个客户机 Java应用程序时出现的窗口。
图 3. Java Web Start下载客户机 JAR文件
Java Web Start把一个应用程序下载到了本地机之后,客户机程序就被执行了。将来,当程序再次从 Java Web Start启动时,Java Web Start将试图判定客户机是否有应用程序的最新版本。在此过程中,用户将可以看到一个与图 4所示的相似的窗口。
图 4. Java Web Start检查应用程序的版本
从用户的观点来看,该窗口提供了该 Java应用程序是在启动过程还是在更新过程的可视化反馈。另外,进度条和文本反馈不仅通知用户每个过程所需的时间,还让用户可以了解更新或启动什么时候将完成。这也许是该产品的最有用的特性之一,它可以确保在应用程序的启动过程的每一步都通知了用户正在发生什么。
回页首
图形用户界面(GUI)
应用程序管理器的 GUI(图形用户界面)提供了一个简单的却合理的界面,该界面允许用户在启动应用程序时可以指定多种的选项。每次启动应用程序管理器时,出现一个闪屏,如图 5所示。
图 5.应用程序管理器闪屏
一旦闪屏消失,应用程序管理器的主窗口就显示出来,如图 6所示。
图 6.应用程序管理器的主窗口
在 Applications框中,可以看到和启动所有的从 Java Web Start启动的应用程序。在下面的框中,提供了关于选中的 Java应用程序的附加信息(在图 6中,即为 Draw 4),如供应商、可以获得关于该应用程序的更多信息的主页以及程序的描述。这条信息是直接从该应用程序的 JNLP文件(稍后有更多关于 JNLP的介绍)派生的。
在 File Preferences,有让用户调整和校准的多种设置。尽管大多数设置已经由 Java Web Start自动配置了,但仍然允许用户覆盖不同的设置,如代理设置,如下面的图 7所示。
图 7.应用程序管理器的 Preferences选项卡
用户还可以指定当启动应用程序时使用 JRE的什么版本,如图 8所示。
图 8.指定 JRE
本质上,应用程序管理器的目的在于为管理所有的遵照 Java Web Start指导方针和策略的应用程序提供了一个统一的实用程序。另外,应用程序管理器允许有经验的用户配置一些应用程序设置。这样免除了一些开发者将在其它方面需要做的工作,比如写脚本或批处理文件来启动或配置应用程序。要注意应用程序管理器仅对为 Java 2平台编写的而且与 Java Web Start兼容的应用程序有用,注意到这一点是很重要的。实用程序不能查出驻留在本地机的其它 Java应用程序。
要考虑的问题
当选择是否为与 Java Web Start兼容而开发应用程序时,明智的做法是对用户体验做全面考虑。
Java Web Start必须安装在每台从 Web或从 Java应用程序管理器启动客户机 Java应用程序的机器上。所以,虽然客户机 Java应用程序可以从 Web页面启动,但如果最初没有 Java Web Start安装在本地机上的话,该应用程序本身是不能启动的;这样 Web浏览器仅提供启动程序的方便的链接―不多不少。
Java Web Start仅对正确打包的并且依照 Java Web Start指导方针的应用程序有用。另外,需要 Web服务器,而且 Web服务器必须正确的配置来解释所有的JNLP和 MIME标记。所以,除非下载的或是从 Web启动的所有的客户机 Java应用程序满足了这些要求,每个客户机 Java应用程序才能从 Java Web Start被启动和被管理的。
在用户中也许有点关于 Java Web Start和 Java插件的应用程序与 applet间的不同之处的困惑。用户可能理解或还不理解为什么 Java Web Start能管理和启动许多的客户机 Java应用程序,却不能与以 Java插件运行的 Java Applets建立任何连接,尽管事实是任一程序都可以从 Web浏览器启动。
对于被要求去为仅仅一个客户机应用程序而下载 Java Web Start的用户来说,可能又认为对一个客户机 Java应用程序的执行来说,Java Web Start应用程序管理器的特性很累赘,安装过程“麻烦”太多。
Java Web Start仅能用于为 Java 2平台编写的客户机 Java应用程序。
当前,Java Web Start可在 Windows 95/98/NT/2000、Linux和 Solaris操作系统上执行。
回页首
为 Java Web Start做开发
从开发的观点,您应该能象为常规的客户端应用程序一样能为与 Java Web Start的兼容性编写和设计代码。您应该相对的不用担心更新现存的客户机代码所需的打包问题和变通技术。下面是您在开发和部署 Java Web Start的客户端 Java应用程序时需要依照的一些简单的规则:
应用程序可以作为针对 Java 2平台的独立的应用程序正常的编写。
如果您的应用程序需要访问本地系统,那么 JAR文件中的每个条目都必须被签名。
应用程序的所有的文件必须保存在一个 JAR文件集中,该文件集包含如图像和声音文件等资源。
装入资源(如图像)的任何访问都必须使用有类装载器的 getResource方法。请参阅下面的使用 getResource方法示例的清单 1。
清单 1.使用 ClassLoader对象从 JAR文件装入资源
//Obtain the current classloader
ClassLoader classLoader= this.getClass().getClassLoader();
//Load the company logo image
Image companyLogo= classLoader.getResource("images/companyLogo.gif");
更新应用程序代码
从 Web服务器首次下载一个应用程序时,应用程序的所有的相关的 JAR文件被下载到了本地机。Java Web Start将自动决定该把这些文件下载到何处,这是因为缺省的安全性协议(如本地磁盘存取)在起作用。下面将进一步讨论安全性。
从应用程序开发和维护的观点来看,Java Web Start使更新应用程序代码很容易。因为下载的应用程序的所有文件必须包含在客户机的 JAR文件集中,您只需更新存储在 Web服务器的 JAR文件集。Java Web Start将根据下面将讨论的版本编号方案来决定当应用程序最初被启动时需要下载和更新客户机的哪些文件和资源。每次用户启动一个应用程序时,Java Web Start将与包含 JAR文件集的 Web服务器连接,并将下载适当的文件。注意客户机可以下载的资源仅为 JAR文件、图像和 JNLP文件。
Java Web Start使用 HTTP请求来从 Web服务器获得资源文件,并且允许客户机端 Java应用程序从代理服务器或防火墙后执行。最初,Java Web Start将既使用通用的代理自动配置脚本也试着检测本地机的缺省 Web浏览器中定义的代理设置。如果需要附加信息,可用应用程序管理器使用 Preferences部分来指定端口和代理。
回页首
Java Web Start的核心:JNLP
为使 Java应用程序能用 Java Web Start执行,您必须为应用程序创建一个 Java网络语言协议(Java Networking Language Protocol,JNLP)文件。JNLP是一个为应用程序提供基本的元素和描述的 XML文件。JNLP符合规范号为 JSR 000056(请参阅参考资料)的 Java Community Process(JCP)。
JNLP文件的目的如下:
指定从 Web服务器下载的 JAR文件
提供其它的可能的包需要
指定系统属性
考虑到任何必要的运行时参数
指定使用哪个版本的 Java 2平台
JNLP文件的一个示例
JNLP文件以一种与 Web浏览器相似的方式(仅用 URL而不是特定的文件名)来获得并定位文件。清单 2表示了 JNLP文件的一个示例。
清单 2. JNLP文件的一个示例:clientApp.jnlp
<?xml version="1.0" encoding="UTF-8"?>
<jnlp codebase=http://www.companySite.com/javaApp>
<rel="external nofollow" href="clientApp.jnlp">
<information>
<title>This is my company's Java client application</title>
<vendor>Company name</vendor>
<icon rel="external nofollow" href="companyLogo.gif"/>
<homepage ref="reference/tips.html">
<offline-allowed/>
</information>
<resources>
<j2se version=1.3/>
<jar rel="external nofollow" href="companySong.jar" part="music" download="lazy"/>
</resources>
<resources os="Windows"/>
<nativelib="windowIconsForWindowOS.jar" part="windowIcons"
download="eager"/>
<application-desc main-class="bchome-cb8b-8391-663d-164b com.company.ui.Client"/>
<security>
<all-permissions/>
</security>
</jnlp>
清单 2的注释
接下来对 JNLP文件的示例的评述也许在您创建自己的文件时对您有所帮助:
第一行,您可以看到文件的编码是 UTF-8字符编码。所以,当编辑 JNLP文件时,最终文件要用与 JDK一起提供的 native2ascii工具转换来确保文件的编码正确。
jnlp codebase属性用于在 JNLP文件中指定所有的相关 URL。 href属性设置(要求的)是为了让应用程序并入 Java Web Start应用程序管理器。
information标记(如 title、vendor等)用于提供来自 Java Web Start应用程序管理器的关于应用程序的附加信息。 homepage ref属性是专门用于指向 Web URL从而用户可以去提供了关于应用程序的更多的信息的 Web页面。最有趣的 information标记是 offline-allowed属性;该属性决定了客户机 Java应用程序是否能离线启动。当离线运行客户机 Java应用程序时,Java Web Start将继续判定来自 Web服务器的最新的文件;在多数情况下,这个方案将引起快速的超时(因为位置被指定要离线启动),并且应用程序从本地高速缓存启动。
resource标记考虑到 JNLP文件指定应用程序使用哪些 JAR文件和如何下载 JAR文件;即,是急切的还是不紧不慢的。这个特性在当用户要下载大量的文件而对用户来说不是所有的文件都是客户机执行所需要的时是非常有帮助的。缺省的,多数资源是急切的下载的,在这样情况下,JAR文件和资源在应用程序启动前被下载。不紧不慢的下载的资源只有当 Java虚拟机(JVM)触发从应用程序载入资源或文件时才被下载。不紧不慢的下载资源的一个示例是客户机的帮助文件;考虑到了客户机的更快的启动和执行,只有在用户实际上向客户机请求帮助文件时,才会下载这些文件。然而,一旦用户请求了一个帮助文件,在请求过程中适当的 JAR就会被下载,并伴有一个通知用户大致的下载时间的窗口。
JNLP文件中最后一个有趣的标记是 security属性。缺省的,任何从 Java Web Start客户机启动的 Java应用程序在一个安全的、受限制的环境执行,该环境中不允许进行本地文件访问、与其它计算机的网络连接等等。然而,对于要对客户机和网络可以完全访问的特性丰富的客户机来说, all-permissions值是用于给予客户机完全访问的权限的。为具有对本地机的完全访问,Java应用程序所使用和装入的所有 JAR文件和资源必须被数字签名。安全性将在下面将进一步讨论。
回页首
JNLP和 WAR文件
为与应用程序相关的 JNLP文件和 JAR文件提供更加方便有效的打包方案,Java Web Start使 Web压缩文件(WAR)的分发成为可能。WAR文件是一个目录结构,它包含了一个与 JNLP文件和 JAR文件一起打包的 servlet,从而使整个包能够方便的在 Web服务器上部署。该 servlet自身被打包在 jnlp-servlet.jar文件里,包里还有 JnlpDownloadServlet类作为主要的执行 Java类,这个类将负责不同的任务,如:
生成 JARDiff文件
根据 WAR文件中的每个文件或每个目录进行版本编号
支持 JNLP文件中定义的下载协议
自动安装 URL到 JNLP文件,从而免除对开发者要进行硬编码 URL的要求。
为了从 Java Web Start启动应用程序,把应用程序和 WAR文件打包在一起并非必需。然而,WAR文件的加入可以改善存储在 Web服务器的文件的管理和升级。WAR文件的主题对于本文的范围来讲实在是太冗长了。请参阅参考资料来获得与附加信息的联系。
回页首
Java Web Start中的版本变化
到目前为止,我们已经讨论了想要实施 Java Web Start的开发者和用户所需的整体的部署和管理技术。在我们深入前,我要概括一下到目前为止我所讲到的部署的步骤。
应用程序所用的文件存储在 JAR文件。
必须创建一个 JNLP来通知 Java Web Start应用程序使用哪些 JAR文件、如何下载必要的文件等。
一个标准的 Web服务器被配置来接受被 Java Web Start理解的 MIME类型。
JAR文件放在了 Web服务器上。
用户需要下载和安装 Java Web Start(仅一次)。
用户首次运行应用程序;JAR文件被下载并执行。
用户可以再次运行应用程序,从 Java Web Start应用程序管理器或 Web页面启动。Java Web Start将下载需要更新的全部文件,并且然后将启动应用程序。
从技术角度来说,这个总结可能会引发问题:Java Web Startf是如何决定哪些文件是有必要更新的呢?答案很简单:JNLP文件。一个有版本标识的唯一的 URL与每个 JNLP文件中定义的资源相关联。如清单 3所示。
清单 3.JNLP文件中的一个基于版本的 JAR文件的示例
<jar href=http://www.companySite.com/javaApp/imageFiles.jar
version="1.1+">
当启动了一个应用程序时,Java Web Start检查 JNLP文件并创建一个有 URL和版本标识的 HTTP GET请求。如果没有 version属性,那么 Java Web Start就只是创建一个 JAR文件的 HTTP GET请求。Java Web Start检查 Web服务器的响应状态代码和 MIME类型来决定此 JAR文件是否有更新的版本。
JNLP文件还允许使用 JARDiff实用程序来递增的更新 JAR文件。 JARDiff实用程序能只下载 JAR文件中的特定文件(不是整个 JAR文件本身),这样使下载更快。请参阅参考资料来获得关于决定 JNLP文件配置的更多信息。
回页首
安全性
也许在决定是否为了与 Java Web Start兼容而开发应用程序时,需要考虑的最重要的问题就是安全性。Java Web Start允许客户端 Java应用程序访问各种本地机资源,如文件访问、剪贴板访问等。源自 Java 2平台,该产品继承了该平台的安全性体系结构。如前面提到的,在 JNLP文件中定义的 security属性决定了当应用程序通过 Java Web Start启动时所能有的安全性级别。缺省的,使用受限环境,为应用程序授权对网络和本地机的有限的访问。如同使用 applet沙箱(sandbox),这样可以保证恶意的应用程序不能造成任何破坏。
Java Web Start的安全性的另一重要元素是数字签名的使用。当启动或更新一个应用程序时,它的 JAR文件被下载到客户机。Java Web Start用那些文件中的数字编码来判定在对文件初始签名之后,是否有 JAR文件已经被修改或改变。如果有不一致的或是文件尚未被签名,应用程序就不能从 Java Web Start启动。正确签名的应用程序可以访问本地机。
用户授权安全性
当运行要对本地机无限制访问的应用程序时,用户最初将看到一个对话框,该对话框说明了应用程序的出处或供应商,并且允许用户给应用程序授予额外的权限。此外,当应用程序要求使用本地机的资源并且还没有被签名的 JAR文件时,Java Web Start将允许用户通过一个 Security Advisory对话框显式的授予应用程序访问权限。例如,如果客户机 Java应用程序需要能把信息粘贴到 Windows操作系统剪贴板工具,将出现一个与图 9相似的对话框。
图 9.应用程序试图访问剪贴板的 Security Advisory对话框
当应用程序试图访问客户机的本地资源(如文件系统)时,将出现另外的对话框窗口,如图 10所示。
图 10.应用程序试图访问文件系统时的 Security Advisory对话框
用户可以在以下方面授予应用程序对本地机的访问权限:
在本地机存储应用程序的当前状态
查看本地文件的内容
保存文件到本地机
本地机打开文件
在本地机对随机存取文件读/写
从本地机打印
JNLP API库中的很多的类允许开发者在不可靠的环境使用系统的资源,由用户来负责决定操作是否是允许的。
好了,文章到此结束,希望可以帮助到大家。