java中的jdk和jre
2013-05-15 14:31
148 查看
jdk和jre的区别:
jdk:java开发工具包,面向开发人员。里面包含了各种类库和工具。当然也包括了一个jre。这个jre中包含了client和server两个JVM。jdk/bin目录下是编译java文件时要用的命令。jdk/lib目录下编译java文件时要用到类库。
jre:java运行环境,面向用户(非开发人员)。既然要运行,当然要包含bin/client/jvm.dll,jvm是通过bin/java.exe启动的。lib目录下是java标准类库的class文件。
java文件先要被编译器编译成.class文件,再由JVM执行。java文件的编译是通过jdk/bin/javac.exe执行的。编译后的class文件是是二进制指令,不是机器指令,java虚拟机可以识别这些二进制指令。这样class文件就有了可移植性。可以把class文件拿到windows、Linux等不同的操作系统上通过java虚拟机执行。jre/bin/java.exe只是启动jvm,jvm负责对class文件的内容进行处理。将字节码文件解释成机器指令后执行。
要想在系统上运行java文件,首先要配置环境变量。JAVA_HOME的配置是为了找到java命令。PATH的配置是为了找到javac的命令。CLASSPATH的配置是为了找到class文件,以及运行该class文件时要用到其他的class文件和配置文件。
eclipse通常是自动编译java文件的。当你创建好一个java类时,eclipse会自动编译一次,之后在每次修改这个文件单击保存或CTRL+S时都会自动编译。如果工程项目较大,电脑配置较低,而且工程需要经常保存的情况下,就可以选择取消自动编译----勾掉Project--Build Automatically前面的对号,然后执行Project--Clean....在弹出的对话框中选择要编译的项目。
下面是在Linux下运行某个class文件之前要做的准备工作
if [ "$INDEX_JAVA_HOME" != "" ]; then
echo "run java in $INDEX_JAVA_HOME"
JAVA_HOME=$INDEX_JAVA_HOME
fi
if [ "$JAVA_HOME" = "" ]; then
JAVA_HOME=/usr/lib/jvm/java-6-openjdk //jre的安装目录
fi
JAVA=$JAVA_HOME/bin/java //找到启动jvm的java.exe
JAVA_HEAP_MAX=-Xmx1024m //设置jvm的最大内存 ,-Xms是jvm的初始化内存大小
如果jvm内存不够时,会出现Exception in thread "main" java.lang.OutOfMemoryError: Java heap space异常
#check envvars which might override default args
if [ "$INDEX_HEAPSIZE" != "" ]; then
echo "run with heapsize $INDEX_HEAPSIZE"
JAVA_HEAP_MAX="-Xmx""$INDEX_HEAPSIZE""m"
echo $JAVA_HEAP_MAX
fi
# CLASSPATH initially contains $NUTCH_CONF_DIR, or defaults to $NUTCH_HOME/conf
CLASSPATH=${NUTCH_CONF_DIR:=$NUTCH_HOME/conf} //用到了参数置换功能
IFS=
#add libs to CLASSPATH
for f in $INDEX_HOME/lib/*.jar;do //配置CLASSPATH
CLASSPATH=${CLASSPATH}:$f;
done
unset IFS
在设置CLASSPATH或PATH时,jar(class)间,windows下用分号隔开,Linux下用冒号隔开
CLASS=com.fujitsu.cgm.indexer.PageIndexer
exec "$JAVA" $JAVA_HEAP_MAX -classpath "$CLASSPATH" $CLASS //启动jvm,运行class文件
jdk:java开发工具包,面向开发人员。里面包含了各种类库和工具。当然也包括了一个jre。这个jre中包含了client和server两个JVM。jdk/bin目录下是编译java文件时要用的命令。jdk/lib目录下编译java文件时要用到类库。
jre:java运行环境,面向用户(非开发人员)。既然要运行,当然要包含bin/client/jvm.dll,jvm是通过bin/java.exe启动的。lib目录下是java标准类库的class文件。
java文件先要被编译器编译成.class文件,再由JVM执行。java文件的编译是通过jdk/bin/javac.exe执行的。编译后的class文件是是二进制指令,不是机器指令,java虚拟机可以识别这些二进制指令。这样class文件就有了可移植性。可以把class文件拿到windows、Linux等不同的操作系统上通过java虚拟机执行。jre/bin/java.exe只是启动jvm,jvm负责对class文件的内容进行处理。将字节码文件解释成机器指令后执行。
要想在系统上运行java文件,首先要配置环境变量。JAVA_HOME的配置是为了找到java命令。PATH的配置是为了找到javac的命令。CLASSPATH的配置是为了找到class文件,以及运行该class文件时要用到其他的class文件和配置文件。
eclipse通常是自动编译java文件的。当你创建好一个java类时,eclipse会自动编译一次,之后在每次修改这个文件单击保存或CTRL+S时都会自动编译。如果工程项目较大,电脑配置较低,而且工程需要经常保存的情况下,就可以选择取消自动编译----勾掉Project--Build Automatically前面的对号,然后执行Project--Clean....在弹出的对话框中选择要编译的项目。
下面是在Linux下运行某个class文件之前要做的准备工作
if [ "$INDEX_JAVA_HOME" != "" ]; then
echo "run java in $INDEX_JAVA_HOME"
JAVA_HOME=$INDEX_JAVA_HOME
fi
if [ "$JAVA_HOME" = "" ]; then
JAVA_HOME=/usr/lib/jvm/java-6-openjdk //jre的安装目录
fi
JAVA=$JAVA_HOME/bin/java //找到启动jvm的java.exe
JAVA_HEAP_MAX=-Xmx1024m //设置jvm的最大内存 ,-Xms是jvm的初始化内存大小
如果jvm内存不够时,会出现Exception in thread "main" java.lang.OutOfMemoryError: Java heap space异常
#check envvars which might override default args
if [ "$INDEX_HEAPSIZE" != "" ]; then
echo "run with heapsize $INDEX_HEAPSIZE"
JAVA_HEAP_MAX="-Xmx""$INDEX_HEAPSIZE""m"
echo $JAVA_HEAP_MAX
fi
# CLASSPATH initially contains $NUTCH_CONF_DIR, or defaults to $NUTCH_HOME/conf
CLASSPATH=${NUTCH_CONF_DIR:=$NUTCH_HOME/conf} //用到了参数置换功能
IFS=
#add libs to CLASSPATH
for f in $INDEX_HOME/lib/*.jar;do //配置CLASSPATH
CLASSPATH=${CLASSPATH}:$f;
done
unset IFS
在设置CLASSPATH或PATH时,jar(class)间,windows下用分号隔开,Linux下用冒号隔开
CLASS=com.fujitsu.cgm.indexer.PageIndexer
exec "$JAVA" $JAVA_HEAP_MAX -classpath "$CLASSPATH" $CLASS //启动jvm,运行class文件
相关文章推荐
- Java JVM、JDK、JRE、Java三大体系知识串联
- java的几个版本以及jvm、jre、jdk、Java SE、Java EE、Java ME
- A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be avail
- 第一章 JAVA入门(下载安装JDK JRE)
- 深入理解JDK、JRE(两套)、JVM、以及不同目录下的java.exe
- TOMCAT启动提示NB: JAVA_HOME should point to a JDK not a JRE解决方法
- 在CentOS7.4中启动eclipse报错:A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be availa
- Java中jre 和 jdk 的区别
- Java中jre和jdk的区别
- java学习之旅03--JDK和JRE和JVM的区别,JDK的下载安装,环境变量配置,测试安装成功
- Java学习——JDK,JRE,JVM之间的联系
- java入门时的一些基本概念的理解(j2ee,j2se,j2me,jdk,sdk,jre,jvm,跨平台)
- java环境变量的配置(JDK及JRE)
- 批处理一键安装JDK/一键安装JRE和自动配置Java环境变量
- Error loading: \Java\jdk1.6.0_35\jre\bin\server\jvm.dll
- Java 运行环境安装(JRE JDK 区别)
- linux查看java jdk jre安装路径和设置环境变量()
- ubuntu,jdk安装成功后,点击eclipse,提示信息A Java RunTime Environment (JRE) or Java Development Kit (JDK)
- Java小白转载:JDK,JRE,JVM区别与联系
- Java基础:JDK、JRE、JVM的区别与联系