Java程序如何在Linux上执行
(1) 编写Jave代码
(2) 拷贝java项目到$JAVA_HOME/jre/lib/ext目录下
(3) 生成.class 文件 javac ImageShow.java
(4) 创建 .mf文件 并编辑该文件如下所示
Manifest-Version: 1.0
Main-Class: ImageShow
Created-By: 1.2.2(sun Microsystems Inc.):
(5) 打.jar包
Jar cfm ImageShow.jar ImageShow.mf *.class
(6) 执行完上述命名,文件夹中会多一个ImageShow.jar文件
(7) 执行程序 java -jar ImageShow.jar
一、下载jdk-6u14-linux-i586.bin
二、删除Linux环境中的默认JDK安装版本(一般第二步可以不要,我的是Redhat 5 就不需要)
下面以Fedora8为例:
[root@fc8 bin]# alternatives --remove java
/usr/share/java/libgcj-java-placeholder.sh
/usr/share/java/libgcj-java-placeholder.sh 没有被
配置为 java 的替换选择
[root@fc8 bin]# alternatives --remove java
/usr/share/java/libgcj-java-placeholder.sh
/usr/share/java/libgcj-java-placeholder.sh 没有被
配置为 java 的替换选择
[root@fc8 bin]# alternatives --remove javac
/usr/share/java/libgcj-javac-placeholder.sh
[root@fc8 bin]# alternatives --remove jar
/usr/bin/fastjar
[root@fc8 bin]# alternatives --remove jar.1.gz
/usr/share/man/man1/fastjar.1.gz [root@fc8 bin]#
cd /usr/bin
[root@fc8 bin]# rm java
rm:是否删除 符号链接 “java”? y
[root@fc8 bin]# rm javac
rm: 无法删除 “javac”: 没有那个文件或目录
[root@fc8 bin]#
三、安装JDK1.6
假设下载的jdk-1_6_0_14-linux-i586.bin在/usr/tmp/software目录下。
[root]# cd /opt
[root]# chmod 777 jdk-6u21-linux-i586.bin
[root]# ./jdk-6u21-linux-i586.bin
解压完成后,在当前目录生成名为 jdk1.6.0_21 的文件夹。
四、使用JDK1.6
下面就使用常见的Tomcat服务器来举例说明:
1种方法就是设置全局的环境变量,其具体操作为:
[root@fc8 software]vi /etc/profile
写入:
JAVA_HOME=/usr/local/jdk
JRE_HOME=/usr/local/jre
PATH=$PATH:$JAVA_HOME/bin:JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:
export JAVA_HOME JRE_HOME PATH CLASSPATH
source /etc/profile
这种方法,不提倡。
新手建议使用第二种方法,即在Tomcat的bin目录下的catalina.sh添加
老手不赞成使用这种方法,因为换个shell,你的设置就无效了,因此这种方法仅仅是临时使用,以后要使用的时候又要重新设置,比较麻烦。
只需在shell终端执行下列命令:
export JAVA_HOME="/opt/jdk1.6.0_21"
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin
推荐使用以下方法:
如果要使某个用户具有运行java命令的权限,只要修改其bash初始化文件即可。
比如要给用户hugh以运行java命令的权限,
[root]# vi /home/hugh/.bashrc
set JAVA_HOME=/opt/jdk1.6.0_21
export JAVA_HOME
set PATH=$PATH:$JAVA_HOME/bin
export PATH
set CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export CLASSPATH
再不行的话,参照这个网址用其他方法试试:http://www.sudu.cn/info/html/edu/20060101/295091.html
测试:
已经学会如何在Windows下如何编辑,编译和执行Java程序了,我就想试试如何在Linux下编译和执行Linux。
昨天下载了一个for Linux 的Eclipse,使用起来和在Windows下没有什么区别,但是速度慢了些,于是今天我想尝试一下如何在控制台下使用命令编译和执行Java程序。
首先,去Sun的网站上Download一个JDK,我下载的版本是 jdk1.5.0_08,安装。
接着,在root下编写了一个简单的Java程序 first.java
public class first{
public static void main(String args[]){
System.out.println("This is my first program.");
}
}
在/usr/java/jdk1.5.0_08/bin下进行如下操作:
编译 ./javac /root/first.java 没有错误;
执行 ./java /root/first 有错误“Exception in thread "main" java.lang.NoClassDefFoundError”,我以为是没有设置环境变量的缘故。
下一步,设置环境变量。从网上找了一个如何设置环境变量的方法,按照自己的情况设置了一番,设置方法如下:
[root@localhost bin]# export JAVA_HOME="/opt/jdk1.6.0_21"
[root@localhost bin]# export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
[root@localhost bin]# export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin
设置好了之后,对原程序进行重新编译和执行
编译 javac /root/first.java 成功
执行 java /root/first 仍然出现错误 “Exception in thread "main" java.lang.NoClassDefFoundError”
我很纳闷,不知道问题出在哪里,java 这个命令已经可以使用,那应该是使用方法的错误。回到放置程序的root下,再一次执行 java first,这时没有错误,屏幕上显示“This is my first program.”这时我才想起在Windows的DOS环境下执行java这个命令时必须在存放文件的根目录下,在Linux下也应该这样吧!不管怎么说,现在我已经可以在Linux下不借助Eclipse这样的工具对Java程序进行编译和执行了,今天晚上也算是小有收获吧!
做一下总结:我觉得在Linux下安装JDK和在Windows下并没有什么区别,只是在设置环境变量的时候有点不同,Windows的操作稍微简单一些,只需按几下按钮,复制粘贴一下就行;在Linux下则需要敲入挺多的字符才行,但也是不是很难的,只要在使用中注意一些小的细节,不犯粗心大意的错误,很容易就可以在Linux下编写,编译和执行Java程序了,而且在Linux下编写,编译和执行Java程序同样很方便,简单。