您的位置:首页 > 运维架构 > Linux

如何用新安装的JDK替换掉Linux系统自带的gij编译工具

2010-11-29 15:49 966 查看
由于原来做Java开发都是在别人已经配置好的环境中开发,所以还没遇到过配置环境的问题,现在要自己装一个RedHat系统自己配置开发环境,没想到安装JDK就除了问题,找了好久才解决,今天拿出来跟大家分享一下,避免有相同问题的朋友走弯路。

我的问题是这样的,首先我拷贝一个jdk的tar包,放到指定目录下面解压缩,然后配置/etc/profile里面的环境变量,OK 一切顺利,没有任何错误,然后兴高采烈的把自己的工程上传到服务器上开始运行,结果一运行我自己做的shell文件,问题就出现了,调用我的Java类没有反映,程序不运行了.....我这个郁闷,到处找原因,打印信息,重新传工程,后来迫不得已把服务器重新启动一下,依然解决不了问题,我的程序就是转不起来,在控制台输入javac命令,没问题。然后我又输入java,结果问题出现,显示一下信息:

===================================================================

Usage: gij [OPTION] ... CLASS [ARGS] ...
to invoke CLASS.main, or
gij -jar [OPTION] ... JARFILE [ARGS] ...
to execute a jar file
Try `gij --help' for more information.

====================================================================

我就郁闷了,怎么会出现个gij的东西呢,这是什么玩意,于是上网查询,终于知道了, 这是个linux系统自带的java编译工具,由于安装系统的时候,没有去掉这个工具导致的。

接下来就苦苦寻找卸载的方法,结果失败而告终,接着寻找解决办法.........

终于,看见曙光了,让我查到了一个alternatives命令。(兴奋中.....)。这个命令的用法大家可以在控制台中输入

man alternatives命令查看详细介绍。

解决办法:

在终端里面依次输入以下两句话

alternatives --install /usr/bin/java java /usr/java/jdk1.6.0_11/bin/java 300

alternatives --install /usr/bin/javac javac /usr/java/jdk1.6.0_11/bin/javac 300

上面两条命令中红色部分为你新安装的JDK的路径,可以按照你安装的位置自行修改。

好了,现在已经成功一半了,继续 ......

最重要的一步:在终端里面执行alternatives --config java 命令,你会看到如下结果:

====================================================================

共有 2 个程序提供“java”。

选择 命令
-----------------------------------------------
* 1 /usr/lib/jvm/jre-1.4.2-gcj/bin/java
+ 2 /opt/jdk1.5/bin/java

按 Enter 来保存当前选择[+],或键入选择号码:2

====================================================================

有两个java版本,系统会提示让你选择当前要使用的版本,只要选择你要使用版本的对应序号,然后回车就大功告成了。

最后 你可以在终端执行alternatives --display java命令,查看当前两个版本的详细信息,当然,不看也可以。

接下来再在终端里面输入java,你会看到

====================================================================

Usage: java [-options] class [args...]
(to execute a class)
or java [-options] -jar jarfile [args...]
(to execute a jar file)

where options include:
-d32 use a 32-bit data model if available

-d64 use a 64-bit data model if available
-client to select the "client" VM
-server to select the "server" VM
-hotspot is a synonym for the "client" VM [deprecated]
The default VM is client.

-cp <class search path of directories and zip/jar files>
-classpath <class search path of directories and zip/jar files>
A : separated list of directories, JAR archives,
and ZIP archives to search for class files.
-D<name>=<value>
set a system property
-verbose[:class|gc|jni]
enable verbose output
-version print product version and exit
-version:<value>
require the specified version to run
-showversion print product version and continue
-jre-restrict-search | -jre-no-restrict-search
include/exclude user private JREs in the version search
-? -help print this help message
-X print help on non-standard options
-ea[:<packagename>...|:<classname>]
-enableassertions[:<packagename>...|:<classname>]
enable assertions
-da[:<packagename>...|:<classname>]
-disableassertions[:<packagename>...|:<classname>]
disable assertions
-esa | -enablesystemassertions
enable system assertions
-dsa | -disablesystemassertions
disable system assertions
-agentlib:<libname>[=<options>]
load native agent library <libname>, e.g. -agentlib:hprof
see also, -agentlib:jdwp=help and -agentlib:hprof=help
-agentpath:<pathname>[=<options>]
load native agent library by full pathname
-javaagent:<jarpath>[=<options>]
load Java programming language agent, see java.lang.instrument

====================================================================

这是多么熟悉的信息啊,看到它是多么的亲切,呵呵 其实生活可以这么美好,现在去运行你的Java程序吧,哈哈 。

朋友们看完之后要留下脚印噢,如果有更好的办法可以回复大家交流。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: