red hat 配置jdk5.11支持jdk1.4吗

xjsunjie 的BLOG
用户名:xjsunjie
文章数:1000
评论数:2174
访问量:2507056
注册日期:
阅读量:5863
阅读量:12276
阅读量:369967
阅读量:1064467
51CTO推荐博文
在rhel 5.6上安装JDK时,发现一个问题,新安装的版本不能正常应用,用java -version查看时总是显示同一个版本
java version &1.4.2&
gij (GNU libgcj) version 4.1.2
(Red Hat 4.1.2-50)
仔细想了一下应该是系统自带的JAVA版本影响所致。
一、去掉系统自带的JDK环境,安装自己所需的
1、查看系统自带的JDK
#rpm -qa | grep gcj
看到如下信息:
2、卸载系统自带的JAVA:
#rpm -e& --nodeps &java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
不检查依赖关系将其卸载
3、查看系统自带或已安装过的JDK,然后卸载
#rpm -qa| grep&&jdk
& jdk-1.4.2&-fcs
#rpm -e --nodeps jdk-1.4.2&-fcs将其卸载
4、然后在usr下建立java目录,安装新的jdk
首先把jdk-1_5_0_22-linux-amd64.bin安装包上传到/usr/java下
#. /jdk-1_5_0_22-linux-amd64.bin
中间出现提示按y继续,装完会在/usr/java下生成jdk-1_5_0_22目录
如果是RPM的JDK安装包,可以用--prefix &path& 将软件包安装到由 &path& 指定的路径下
二、配置环境变量
1.修改用户环境变量
假设使用java的用户为test,编辑该用户的.bashrc文件进行环境变量设置。
# vi &/home/test/.bashrc
在 .bashrc文件中加入:
export JAVA_HOME=/usr/java/jdk1.5.0_22
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin
2.修改所有用户的环境变量
# vi /etc/profile
在该文件中加入:
JAVA_HOME=/usr/java/jdk1.5.0_22
CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export PATH CLASSPATH JAVA_HOME
注意CLASSPATH路径中加入了$CLASSPATH,这样可以避免将之前配置的路径被覆盖。
3、环境变量生效
#source& /etc/profile
4、检查最后版本是否与安装的一致:
#java -version
&三、RPM常见参数总结:
-h (or --hash) 安装时输出hash记号 (``#'')&&
-v &显示附加信息
-i 显示软件包的概要信息&
--percent & & &以百分比的形式输出安装的进度。
--excludedocs &不安装软件包中的文档文件
--includedocs &安装文档
--replacepkgs &强制重新安装已经安装的软件包
--replacefiles 替换属于其它软件包的文件
--noscripts & &不运行预安装和后安装脚本
--prefix &path& 将软件包安装到由 &path& 指定的路径下
--ignorearch & &不校验软件包的结构
--ignoreos & & &不检查软件包运行的操作系统
--nodeps & & & &不检查依赖性关系
--ftpproxy &host& & 用 &host& 作为 FTP代理 &
--ftpport &port& & &指定FTP的端口号为 &port&
--test & & &只执行删除的测试
--noscripts 不运行预安装和后安装脚本程序
--nodeps & &不检查依赖性
--force & & & &忽略软件包及文件的冲突
RPM查询和升级:
-p &file&(or ``-'') 查询软件包的文件
-f &file& & & & & & 查询&file&属于哪个软件包
-a & & & & & & & & &查询所有安装的软件包&
-g &group& & & & & &查询属于&group& 组的软件包
i 显示软件包的概要信息
-l 显示软件包中的文件列表
-c 显示配置文件列表
-d 显示文档文件列表
-s 显示软件包中文件列表并显示每个文件的状态
--scripts 显示安装、卸载、校验脚本
--queryformat (or --qf) 以用户指定的方式显示查询信息
--dump 显示每个文件的所有已校验信息 &
--provides 显示软件包提供的功能
--requires (or -R) 显示软件包所需的功能
-U& 软件的升级
-V& 软件的校验
&本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)5.10 - Rerunning failed tests
套件中的测试失败时,每次testNG都会在输出目录中创建一个名为testng-failed.xml 的文件。这个xml文件包含只重新运行这些失败的测试方法的必要信息,容许只运行这些 失败的测试而不必运行全部测试。因此,一种典型的情况将是这样:
java -classpath testng.%CLASSPATH% org.testng.TestNG -d  test-outputs testng.xml
java -classpath testng.%CLASSPATH% org.testng.TestNG -d test- outputs test-outputs\testng-failed.xml
注意testng-failed.xml将包含所有必要的依赖方法,所以可以保证运行失败的方法而 不运行任何被跳过的(失败)方法。
5.11 - JUnit tests
TestNG可以运行junit测试。所需要的只是在testng.classNames属性中指定junit测试 类,并设置testng.junit属性为true。
这种情况下TestNG的行为类似jnit:
* 类中所有以test*开头的方法将被运行。
* 如果测试类中有方法setUp(), 将在每次测试方法调用前被执行。
* 如果测试类中有方法tearDown(),将在每次测试方法调用后被执行。
5.12 - JDK 1.4
TestNG也可以在JDK1.4下工作。在这种情况下,需要使用发布的jdk1.4的jar文件(名 为testng-...-jdk14.jar)。唯一的差别是在于注解,jdk1.4下使用流行的XDoclet javadoc注解语法:
public class SimpleTest {
   * @testng.before-class = "true"
   public void setUp() {
     // code that will be invoked when this test is  instantiated
   * @testng.test groups = "functest" dependsOnGroups =  "group1,group2"
   public void testItWorks() {
     // your test code
javadoc语法的规则非常简洁,和jdk1.5注解的唯一差别是数组串数组需要特别写成单 独的,逗号或空格分隔的字符串。虽然值周围的双引号是可选的,但还是建议在任何情况 下都使用双引号,以保证将来迁移到jdk1.5时可以比较容易。
同样需要在的ant任务中指明sourcedir属性(或者在命令行中使用- sourcedir),以便testNG可以找到你的测试文件的源代码来解析javadoc注解。
这里是jdk1.4和jdk5注解的语法对照表:
(表格在blog中不好排版,不在这里发了,详细内容请参考官方文档的原文: http://testng.org/doc/documentation-main.html#jdk-14。)
更多jdk1.4的支持范例,请参考发行包中的test-14文件夹,这里包含全部的JDK 1.5 测试对应的使用javadoc注解的内容。
5.13 - Running TestNG programmatically
在自己的程序中调用testNG也很简单:
TestListenerAdapter tla = new TestListenerAdapter();
TestNG testng = new TestNG();
testng.setTestClasses(new Class[] { Run2.class });
testng.addListener(tla);
testng.run();
这个范例创建了一个TestNG对象并运行测试类Run2。还增加了一个TestListener。你 可以使用适配器类org.testng.TestListenerAdapter或自己实现 org.testng.ITestListener。这个接口包含多个回调方法,使得可以追踪测试的开始,成 功,失败等等。
类似的,可以使用testng.xml文件调用TestNG或者自己创建一个虚拟的testng.xml文 件。为了做到这点,需要使用org.testng.xml包的类:XmlClass, XmlTest, 等等。每个 类对应他们xml标签。
例如,假设你想创建下面的虚拟文件:
      
你将使用下面的代码:
XmlSuite suite = new XmlSuite();
suite.setName("TmpSuite");
XmlTest test = new XmlTest(suite);
test.setName("TmpTest");
List classes = new ArrayList();
classes.add(new XmlClass("test.failures.Child"));
test.setXmlClasses(classes) ;
然后你可以将XmlSuite传递给TestNG:
List suites = new ArrayList ();
suites.add(suite);
TestNG tng = new TestNG();
tng.setXmlSuites(suites);
tng.run();
完整的API请参考javadoc。
5.14 - BeanShell and advanced group selection
如果testng.xml中的和标签还不足够满足你的需要 ,你可以使用BeanShell表达式来决定是否需要将一个特定的测试方法包含在测试操作中 。只需要在标签下指定这个表达式:
     
       
上一篇:下一篇:
相关经验教程在Red hat linux enterprise 五 上安装 eclipse - Linux/Unix当前位置:& &&&在Red hat linux enterprise 五 上安装 eclipse在Red hat linux enterprise 五 上安装 eclipse&&网友分享于:&&浏览:13次在Red hat linux enterprise 5 上安装 eclipse
在Red hat linux enterprise 5 上安装 eclipse( 11:22:47)
我的机器上安装的是jdk6.版本是jdk1.6.0_13,下载的文件是jdk-6u13-linux-i586.bin,并且配置好环境变量,详情参
考我的文章“在Red hat linux enterprise 5 上安装 JDK 6.0"
2. 下载Eclipse
我下载的是eclipse-jee-ganymede-SR2-linux-gtk.tar.gz 其是JAVA EE
eclipse,能够创建Web工程,EJB工程等企业应用相关的工程.
3.安装eclipse
将下载的eclipse-jee-ganymede-SR2-linux-gtk.tar.gz拷贝到你想安装Eclipse的目录下(我这里是/usr
/java,执行如下命令,
# tar -zxvf eclipse-jee-ganymede-SR2-linux-gtk.tar.gz
执行这个命令后你会看到在你所选择的目录下有了一个叫eclipse的文件夹,我这里是/usr/java/eclipse
在完成上面的步骤之后,你可能会认为你也大功告成了,但有可能出现的问题是当启动Eclipse时,其提示当前的JDK版本与eclipse要求的版本不
匹配,其原因是当启动Eclipse时其默认使用linux自带的jdk 如jdk
1.4.2_x等,其并没有使用我们安装的JDK1.6x.那么如何解决这个问题呢?
请看如下:
首先需要把新安装的jdk添加到alternatives
# alternatives --install /usr/bin/java java
/usr/java/jdk1.6.0_13/jre/bin/java 2
然后使用--display选项可以查看目前系统可用的JDK:
# ./alternatives --display java
确认无误后,就可以使用--config参数来选择想用的JDK了:
# ./alternatives --config java
共有 3 个程序提供“java”。
-----------------------------------------------
/usr/lib/jvm/jre-1.4.2-gcj/bin/java
/usr/java/jdk1.6.0_13/jre/bin/java
/usr/java/jdk1.6.0_13/bin/java
按 Enter 来保存当前选择[+],或键入选择号码:2
这里我们输入2并按 Enter 来保存.
到此为止你以为没问题了,但当你重新启动eclispe时 ,其可能自动关闭,为什么呢?请看如下,
SELinux is preventing /usr/java/eclipse/eclipse from loading
/usr/java/jdk1.6.0_13/jre/lib/i386/client/libjvm.so which
requires text
relocation.
Detailed Description
The /usr/java/eclipse/eclipse application attempted to load
/usr/java/jdk1.6.0_13/jre/lib/i386/client/libjvm.so which
requires text
relocation.
This is a potential security problem. Most
libraries do not
need this permission. Libraries are sometimes coded incorrectly
and request
this permission.
/drepper/selinux-mem.html web
page explains how to remove this requirement.
You can configure
temporarily to allow
/usr/java/jdk1.6.0_13/jre/lib/i386/client/libjvm.so to
use relocation as a workaround, until the library is fixed.
Please file a
/bugzilla/enter_bug.cgi against this
Allowing Access
If you trust /usr/java/jdk1.6.0_13/jre/lib/i386/client/libjvm.so
correctly, you can change the file context to textrel_shlib_t.
textrel_shlib_t
/usr/java/jdk1.6.0_13/jre/lib/i386/client/libjvm.so"
The following command will allow this access:
chcon -t textrel_shlib_t
/usr/java/jdk1.6.0_13/jre/lib/i386/client/libjvm.so
Additional Information
Source Context
system_u:system_r:unconfined_t:SystemLow-
SystemHigh
Target Context
system_u:object_r:usr_t
Target Objects
/usr/java/jdk1.6.0_13/jre/lib/i386/client/libjvm.s
o [ file ]
Affected RPM Packages
Policy RPM
selinux-policy-2.4.6-30.el5
Selinux Enabled
Policy Type
MLS Enabled
Enforcing Mode
Plugin Name
plugins.allow_execmod
localhost.localdomain
Linux localhost.localdomain
2.6.18-8.el5xen #1 SMP
Fri Jan 26 14:42:21 EST
Alert Count
Line Numbers
Raw Audit Messages
avc: denied { execmod } for comm="eclipse" dev=dm-0 egid=0 euid=0
exe="/usr/java/eclipse/eclipse" exit=-13 fsgid=0 fsuid=0 gid=0
name="libjvm.so"
path="/usr/java/jdk1.6.0_13/jre/lib/i386/client/libjvm.so"
pid=3579 scontext=system_u:system_r:unconfined_t:s0-s0:c0.c1023
subj=system_u:system_r:unconfined_t:s0-s0:c0.c1023 suid=0
tclass=file
tcontext=system_u:object_r:usr_t:s0 tty=(none) uid=0
根据这个信息提示系统建议我们使用如下命令去解决问题
#chcon -t textrel_shlib_t
/usr/java/jdk1.6.0_13/jre/lib/i386/client/libjvm.so
执行完这个命令后,重新启动eclipse,你会发现我们终于成功了.
4.为Eclipse创建一个link在桌面上.
右击图形界面——〉选择"新建启动器(New
Launcher)"——〉名称(Name)输入Eclipse——〉命令(Command)选择Eclipse解压目录/usr/java
/eclipse——〉图标(Icon)可以选择Eclipse的图标——〉点击确定完成,然后你就可以双击图形界面中的快速启动来启动你的
eclipse了,当然也可以在shell下执行eclipse根目录下的执行文件来启动eclipse!
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!

我要回帖

更多关于 red hat 的文章

 

随机推荐