快速业务通道

通过CD-ROM分发Java Web Start应用程序 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
ion * 100 + revision; if ( thisVersion > latestVersion ) { String value = null; while ( i < numEntries ) { value = results.get( i++ ).toString().trim(); if ( value.startsWith( "JavaHome" )) break; } installedPath = value.substring( value.indexOf( "REG_SZ" ) + 6 ).trim(); latestVersion = thisVersion; } } } } } } return installedPath; }

通过CD-ROM分发Java Web Start应用程序(3)

时间:2011-07-08 Sun / Luan O''Carroll

上述方法的作用是查找注册表条目。可以通过一些 API 来获 取注册表的值,但是对于这种情况,最实际的方法是使用简单的命令行 REG QUERY <key>,其中,<key> 是查询的注册表路径。下面这个方法将 运行该命令并从输出流中读取条目,然后将它作为 Vector 返回:

private Vector getRegEntries( String key ) { Vector results = new Vector(); try { Process proc = Runtime.getRuntime().exec( "REG QUERY " + key ); InputStream is = proc.getInputStream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String result = ""; String line; while (( line = br.readLine()) != null ) { line = line.trim(); results.add( line ); } return results; } catch ( Exception ex ) { message( language.getString("6") + ex.getMessage() ); ex.printStackTrace(); } return null; }

安装 JVM

如果无法找到合适的 JVM,那么可以通过 CD 安装它,只要知道它的位置就行 。启动程序使用一个资源文件定位所需的各种资源,并通过此机制定向到 JVM 安 装包。启动 JVM 安装的方法仍然是使用正确的命令,但这次,由于进程运行的时 间相对较长,因此需要等待它运行完成。execed 进程的 waitFor 方法将使线程 等待,但是为了避免阻塞 UI 线程,需要将它嵌入在一个 SwingWorker 中:

private void installJre() { try { final String javaInstall = (String)props.get( "jre_installer" ); status.setText( language.getString("3") ); SwingWorker worker = new SwingWorker() { public Object construct() { try { Process process = Runtime.getRuntime().exec( wo***ngDir + File.separatorChar + javaInstall ); process.waitFor(); exitValue = new Integer( process.exitValue()); } catch ( Exception ex ) { exitValue = new Integer( -1 ); ex.printStackTrace(); } return exitValue; } public void finished() { int ev = exitValue.intValue(); if ( exitValue != 0 ) { status.setText( language.getString("Error:_") + exitValue ); message( language.getString("4") ); } else { installedJrePath = getInstalledPath( 5, -1, -1, 5, -1, -1 ); doInstall( installedJrePath ); } status.setText( "" ); } }; worker.start(); } catch ( Exception ex ) { status.setText( language.getString( "5" )); ex.printStackTrace(); } }

通过CD-ROM分发Java Web Start应用程序(4)

时间:2011-07-08 Sun / Luan O''Carroll

启动 JWS 和 Wait

定位到 JVM 之后,可以使用适当的命令行来启动它。在调用 JWS 时,初次调 用 import 可能需要花费一些时间,因此需要再次使用 waitFor 方法,而第二次 调用只需要启动应用程序即可(并让它执行自己的任务)。当应用程序启动之后 ,可以退出启动应用程序,它的任务已经完成:

private void launchWebStart( String javaWS

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号