`
ihuashao
  • 浏览: 4556868 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

如何让java运行在指定版本的JRE中

阅读更多

写个主要想法是java 版本众多,也不知道客户安装那个版本java. 还有就是为了简化发布工作,可以直接把文档发送到客户端就可以了.

首要有必要了解一下java.exe 如何寻找JRE库的:


当在控制台执行java.exe,操作系统寻找JRE的方式如下:
1) 先找当前目录下有没有JRE
2)再找父目录下有没有JRE
3)接着在PATH路径中找JRE
4)注册表HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\ 查看CurrentVersion的键值指向哪个JRE


2.JRE类库查找

JRE自带的基础类库主要是JRE\lib\rt.jar这个文件,包括了Java2平台标准版的所有类库。和JRE的版本一致。

JRE中由ClassLoader负责查找和加载程序引用到的类库,基础类库ClassLoader会到rt.jar中自动加载,其它的类库,ClassLoader在环境变量CLASSPATH指定的路径中搜索,按照先来先到的原则,放在CLASSPATH前面的类库先被搜到,Java程序启动之前建议先把PATH和CLASSPATH环境变量设好,OS通过PATH来找JRE,确定基础类库rt.jar的位置,JRE的ClassLoader通过CLASSPATH找其它类库。但有时候会出现这样的情况,希望替换基础类库中的类库,那么也可以简单的通过-Djava.endrosed.path=...参数传递给java.exe,于是ClassLoader会先于基础类库使用java.endrosed.path参数指定路径的类库。因此Java的版本管理是非常简单有效的,也许很原始,不过很好用,简单就不容易出错。

3.Java的虚拟机启动和加载类库

在Console执行java.exe xxx命令以后,如前所述的寻找JRE,OS找到JRE目录,根据java.exe的传递参数,选择加载Server版的jvm.dll还是Client版的jvm.dll,然后加载jvm.dll,把控制权交给jvm.dll。

接下来,jvm.dll进行初始化,分配内存等等动作,然后在CLASSPATH路径中寻找class,找到class以后,寻找class中的程序入口点Main函数,然后从Main函数执行程序,在执行过程中,使用ClassLoader动态加载一系列引用到的类。当调用到native方法时,jvm.dll告诉OS在JRE\bin目录下寻找某某DLL文件,调入内存,于是实现了JNI调用。


最后简单说运行实现我们希望目的目录结构(以test目录为例):
test 存项目java文件生成的.class,.jar 等文件.
test/jre/bin 复制对就jdk中的 bin目录就可以。
test/jre/lib 复制对就jdk中的 jre/lib 目录就可以。
建立以上目录结果之后就可以将test/jre/bin/java.exe 发送到桌面快捷方式。
然后修改一下那快捷快方式 目标(T)标位 改成 ...../test/jre/bin/java.exe test ,
这里要注意的是 起始位置(S) 一起在改一下!如下:...../test/ 这个为什么就不用我说了,自己体会吧。:D

对了,再烦一下,使用javaw.exe 试试,可以不要那个该死的console窗口哦。哈哈。

分享到:
评论

相关推荐

    JRE java运行环境

    java 运行环境 jre,无线输盘需要的的jre java 运行环境 jre,无线输盘需要的的jre java 运行环境 jre,无线输盘需要的的jre

    jre6 java运行环境免安装版

    运行java程序的精简jre6,免安装,适合copy到机器安装,指定jre目录,直接运行

    windows运行jar包指定jdk路径

    windows运行jar包指定jdk路径的脚本文件。可以不用系统的jdk运行,指定某个文件下的jdk运行jar包

    jre-8u202-windows-i586.exe

    JRE中由ClassLoader负责查找和加载程序引用到的类库,基础类库ClassLoader会到rt.jar中自动加载,其它的类库,ClassLoader在环境变量CLASSPATH指定的路径中搜索,按照先来先到的原则,放在CLASSPATH前面的类库先被...

    jre8u202i586.zip

    JRE中由ClassLoader负责查找和加载程序引用到的类库,基础类库ClassLoader会到rt.jar中自动加载,其它的类库,ClassLoader在环境变量CLASSPATH指定的路径中搜索,按照先来先到的原则,放在CLASSPATH前面的类库先被...

    Java基础知识总结 - 超详细篇收藏.pdf

    2,JRE:Java Runtime Environment,java程序的运行环境,java运行的所需的类库+JVM(java虚拟机)。 3,配置环境变量:让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当...

    java基础知识回顾.rar

    2,JRE:Java Runtime Environment, java程序的运行环境,java运行的所需的类库+JVM(java虚拟机)。 3,配置环境变量: 让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,...

    java环境变量jdk1.8设置

    在Java开发中,我们经常需要配置一些环境变量来指定Java运行时的一些参数。 JAVA_HOME:Java安装目录,用于指定Java运行环境的安装位置。设置此环境变量可以让系统找到Java编译器和JVM等工具。 CLASSPATH: Java类路径,...

    Java支持库2.0#0版

    本支持库要求目标机器中已安装“Java运行时环境”(JRE)。如果在没有配置好Java环境的情况下使用本支持库,所有对象方法都将返回空值(假,0,“”)。本支持库安装后,将自动在易语言主菜单中添加一项工具菜单,...

    WireMock的独立jar包:wiremock-jre8-standalone-2.28.0.jar

    WireMock是一个基于http api开源的测试工具,支持HTTP/HTTPS响应存根、请求验证、代理/拦截、记录和回放,可以用于快速构建...java -jar wiremock-jre8-standalone-2.28.0.jar --port 9999 --verbose(指定端口号运行)

    java源码包---java 源码 大量 实例

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...

    jre 最新 安装软件(6.0)

    jre 6.0 安装软件 运行用 Java 编程语言编写的小应用程序和应用程序时所需的环境。 可以和jdk 6.0 用来 Java的开发

    Java支持库2.0#0版(静态版)

    本支持库要求目标机器中已安装“Java运行时环境”(JRE)。如果在没有配置好Java环境的情况下使用本支持库,所有对象方法都将返回空值(假,0,“”)。本支持库安装后,将自动在易语言主菜单中添加一项工具菜单,...

    java jdk8 学习笔记

    C:\lib\abc.jar 指定jvm寻找.class文件路径的方法有三种,分别是从当前目录下寻找、某个文件夹下寻找或在链接库的jar文件中寻找。 同样,使用命令行指定classpath的方式优先于从系统读取classpath环境变量。 7...

    java源码包2

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java...

    JAVA上百实例源码以及开源项目

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...

    基于java多线程的端口扫描器

    基于java多线程的端口扫描器,包括如下功能:按照IP地址进行端口扫描,按照给定的IP地址范围,逐个进行扫描、按照主机名...配置要求:安装Sun公司的Java运行环境(JRE 1.5或以上版本),推荐安装Java开发工具包(JDK 1.5)。

    JAVA上百实例源码以及开源项目源代码

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...

    java基础总结大全

    JRE(Java Runtime Environment):java的运行环境,包括jvm+java的核心类库。 JDK(Java Development Kit):java的开发工具,包括jre+开发工具 2、环境变量path和classpath的作用是什么? (1)path是配置Windows可执行...

    java源码包4

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java...

Global site tag (gtag.js) - Google Analytics