一直都认为java的jre环境配置比较麻烦,特别是一台pc机器上装了多种不同版本的jre。当一个应用程序在不同的机器上迁移的时候,jre的不同会让你遇到一些意想不到的错误,解决这种问题的方法有两个,一个就是在应用程序中绑上一个jre,让应用程序不管到了哪里,都用的是自己的jre;另一个就是通过改变客户机的jre,比如说向客户机的jre里加入一些应用程序所必需用到的jar包等等。
第一种方法简单是简单,但是有一个最大的弊端,就是附带了jre的应用程序的容量会变得很大,一般情况下至少有增加60MB。。。我原来的程序才1MB多。。。
那就考虑第二种,让客户在运行我的安装程序时,安装程序自动查找到客户机当前使用的jre,并向jre里添加程序所需要的jar包。
以下就是一段取得jre路径的代码,只针对pc平台:
import java.io.*;
public class Setup {
public void createTemp() throws IOException{
Runtime.getRuntime().exec("regedit /ea jrepath.temp \"HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java RunTime Environment\"");
try {
Thread.sleep(1000);//足够的时间间隔
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public String getJrePath() throws IOException{
File f;
FileReader fr;
BufferedReader br;
f=new File("jrepath.temp");
fr = new FileReader(f);//读取注册表临时文件
br=new BufferedReader(fr);
String line=br.readLine();
while(line!=null){
if(line.indexOf("JavaHome")!=-1){
break;
}
line=br.readLine();
}
br.close();
fr.close();
f.delete();//临时文件删除
String[] info=line.split("\"");
return info[3];
}
public void copyFiles(String filePath1,String filePath2) throws IOException{
File f1,f2;
FileInputStream fin;
FileOutputStream fout;
f1=new File(filePath1);
fin=new FileInputStream(f1);
f2=new File(filePath2);
fout=new FileOutputStream(f2);
int i;
while((i=fin.read())!=-1){
fout.write(i);
}
fout.close();
fin.close();
}
public static void main(String[] artg) throws IOException{
Setup setup=new Setup();
setup.createTemp();
String jrePath=setup.getJrePath();
System.out.println(jrePath);
}
}
分享到:
相关推荐
JRE1.8.0(Java Runtime Environment)——Java运行环境32bit
Java Runtime Environment 1.6.0.7 (32-bit
JRE 1.4.2 JRE(Java Runtime Environment,Java运行环境),运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。
Java Runtime Environment-6.0.26.exe
java runtime environment 1.8.0_45 64bit.rar
java runtime environment 1.8.0_45 64bit jre1.8.0_45 64bit jre-8u261
Installation notes for the J2SE Runtime Environment 5.0 (JRE), including system requirements and installation instructions, are available for the following platforms. Platform 32-bit Installation 64...
jre(Java Runtime Environment),Java运行环境64位安装包
jre(Java Runtime Environment),Java运行环境32位安装包
Java Runtime Environment-6.0.450
java runtime environment(JRE)安装 2020-11-4 一、搭建环境 1.1 安装Keil 5 官网下载:http://www2.keil.com/mdk5/ 百度网盘:https://pan.baidu.com/s/18t_ta0WWX_f1KCKXfgj_Zw 提取码:gx3r 1.2 安装JRE 由于...
JRE(Java Runtime Environment)——windows Java运行环境 64bit
NULL 博文链接:https://dingherry.iteye.com/blog/1545972
Java Runtime Environment,Java运行环境64位安装包,官网下载。 Java SE Runtime Environment 8 Downloads Do you want to run Java™ programs, or do you want to develop Java programs? If you want to run ...
Java SE Runtime Environment(运行时环境)包含了运行以 Java 编程语言编写的程序所必需的 Java 虚拟机、运行时类库和 Java 应用程序启动器。 Java 平台的安全性 一个由角色提供的安全信息的描述。适用于开发人员...
Sun Java SE Runtime Environment(JRE)6
JRE 版本号为8u251,Linux 32位版本,包含rpm安装程序和压缩包。 Java Runtime Environment 是运行基于Java语言编写的程序所不可缺少的运行环境,用于解释执行Java的字节码文件。
Java Runtime Environment(JIR)
Oracle收费前的最后一个免费稳定版本,企业和商业可用 jre-8u201-windows-x64.exe jre-8u201-windows-i586.exe
运行JAVA程序不可缺少的环境。一旦拥有Java软件,您即会进入一个全新的互动世界。 Java语言是稳居网络应用程序语言的首选之一。这都要归功于它高度的安全性以及跨平台的特性,几乎在目前所有的电脑平台上您都可以...