- 浏览: 100047 次
- 性别:
- 来自: 上海
-
文章分类
最新评论
-
loveduck2005:
很实用的帖子,对我很有帮助,感谢楼主!!
发现价值(2) ---无限的网络资源 -
JimyChen:
非常好啊,thank you
发现价值(2) ---无限的网络资源 -
jeffchen:
看一下能评论吗
用JAVA操作ClearCase
本文关注怎么用JAVA处理ClearCase(ClearCase是rational公司开发的配置管理工具,了解详情点这里).在了解了怎么用JAVA.LANG.RUNTIME以后,主要的事情还是输入输出流,同步,以及字符串的处理.
下面这段代码演示了如何调用ClearCase的命令行:
public String exec(String command) throws IOException {
Process process = Runtime.getRuntime().exec(command);
StringWriter outWriter = new StringWriter();
StringWriter errWriter = new StringWriter();
ProcessOutputReader outReader = new ProcessOutputReader(
process.getInputStream(),
outWriter);
ProcessOutputReader errReader = new ProcessOutputReader(
process.getErrorStream(),
errWriter);
Thread outReaderThread = new Thread(outReader);
Thread errReaderThread = new Thread(errReader);
outReaderThread.start();
errReaderThread.start();
synchronized (outReaderThread) {
if (outReaderThread.isAlive()) {
try {
outReaderThread.wait();
} catch (InterruptedException ie) {}
}
}
synchronized (errReaderThread) {
if (errReaderThread.isAlive()) {
try {
errReaderThread.wait();
} catch (InterruptedException ie) {}
}
}
String out = outWriter.toString();
String err = errWriter.toString();
return out
+(out.length() > 0 && err.length() > 0 ? "\n":"")
+err;
}
Process process = Runtime.getRuntime().exec(command);
StringWriter outWriter = new StringWriter();
StringWriter errWriter = new StringWriter();
ProcessOutputReader outReader = new ProcessOutputReader(
process.getInputStream(),
outWriter);
ProcessOutputReader errReader = new ProcessOutputReader(
process.getErrorStream(),
errWriter);
Thread outReaderThread = new Thread(outReader);
Thread errReaderThread = new Thread(errReader);
outReaderThread.start();
errReaderThread.start();
synchronized (outReaderThread) {
if (outReaderThread.isAlive()) {
try {
outReaderThread.wait();
} catch (InterruptedException ie) {}
}
}
synchronized (errReaderThread) {
if (errReaderThread.isAlive()) {
try {
errReaderThread.wait();
} catch (InterruptedException ie) {}
}
}
String out = outWriter.toString();
String err = errWriter.toString();
return out
+(out.length() > 0 && err.length() > 0 ? "\n":"")
+err;
}
其中ProcessOutputReader类的定义:
class ProcessOutputReader implements Runnable {
private InputStream _readFrom;
private Writer _writeTo;
ProcessOutputReader( InputStream readFrom, Writer writeTo) {
_readFrom = readFrom;
_writeTo = writeTo;
}
public void run() {
InputStreamReader bir = new InputStreamReader( _readFrom );
char[] ca = new char[100];
int numRead = 0;while ( numRead != -1 ) {
try {
numRead = bir.read(ca);
if ( numRead > 0 ) {
_writeTo.write(ca, 0, numRead);
}
} catch ( IOException e ) {
numRead = -1;
}
}
}
}
private InputStream _readFrom;
private Writer _writeTo;
ProcessOutputReader( InputStream readFrom, Writer writeTo) {
_readFrom = readFrom;
_writeTo = writeTo;
}
public void run() {
InputStreamReader bir = new InputStreamReader( _readFrom );
char[] ca = new char[100];
int numRead = 0;while ( numRead != -1 ) {
try {
numRead = bir.read(ca);
if ( numRead > 0 ) {
_writeTo.write(ca, 0, numRead);
}
} catch ( IOException e ) {
numRead = -1;
}
}
}
}
调用以上的方法:
public static void main(String[] args) throws Exception {
RuntimeExec re = new RuntimeExec();
String result = re.exec("cleartool ls -s /XX/XX/XX...");
String result1=re.exec("cleartool lsvtr -g /XX/XX/XX...");
System.out.println(result);
System.out.println(result1);
}
RuntimeExec re = new RuntimeExec();
String result = re.exec("cleartool ls -s /XX/XX/XX...");
String result1=re.exec("cleartool lsvtr -g /XX/XX/XX...");
System.out.println(result);
System.out.println(result1);
}
上面代码的几点说明:
1.Runtime.getRuntime().exec(command) 通过JAVA提供的Runtime直接运行ClearCase的命令.Runtime是JAVA提供的,用于当前应用程序和运行环境交互,getRuntime()方法返回的就是当前Runtime实例.
2./XX/XX/XX… 代表目标文件夹或者文件.
3.cleartool lsvtr -g这个ClearCase命令可以打开图形界面.
如果想要获得Config Spec(不知道什么是Config Spec?点击这里了解),则应该这样调用:
String catcs = re.exec("cleartool catcs");
在取得Config Spec后,剩下的都是字符串操作.
发表评论
-
我的英文简历
2006-05-22 23:42 1059... -
一个项目经理的一些个人体会(转贴)
2006-05-31 15:51 875本人做项目经理工作多年,感到做这个工作最要紧的就是要明白什么是 ... -
一个研究生毕业以后的人生规划(ZT)
2006-08-13 14:22 652我今年39岁了, 25岁研究生毕业,工作14年,回头看看, ... -
如何写好一份工程师简历
2006-09-02 17:28 885近三年 Google( ... -
最近想的(2)
2006-09-02 17:58 5961.如果我有压力的话,压力来自于自己。 2.在思 ... -
JAVA相关基础
2006-09-09 12:18 6671、面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主 ... -
深入理解abstract class和interface(转贴)
2006-09-09 20:54 659abstract class和interface是Ja ... -
关于子网掩码的计算
2006-09-11 09:23 868关于子网掩码计算- - ... -
Ruby的特点
2006-09-21 09:45 662Ruby,一种面向 ... -
开发人员如何成为架构师
2007-02-22 23:22 662很多架构师都是从 ... -
数字通讯基础:同步与异步
2007-04-13 13:31 753有两个方面的同步问题 ... -
华为最近的C语言笔试题
2007-04-25 13:18 1008一、判断题(对的写T,错的写F并说明原因,每小题4分,共20分 ... -
为什么我们会失败
2007-04-27 00:00 6851、缺乏目标; ... -
看盘做短线的10种方法
2008-01-06 22:13 717现在把做短线的看盘方法总结后介绍给大家。需要说明的是: (1) ... -
Shell script 笔记
2008-01-07 15:48 10511.使脚本文件具有可执 ... -
FPGA and DSP introduction
2008-01-08 10:57 8211.DSP DSP芯片,也称数字 ... -
TCSH编程(2)
2008-01-09 18:33 1394条件测试 test命令 1,测试文件状态 表达方式: ... -
TCSH 编程(3)
2008-01-09 18:40 1373控制流结构 1, ... -
爱立信展望2008全球电信业5大趋势
2008-01-14 08:56 8312007年的电信业,充满变化与活力:移动、宽带用户继续增长,新 ... -
JAVAC 命令详解
2008-01-16 19:01 7167结构 javac [ options ] [ sour ...
相关推荐
本文将深入探讨ClearCase for Java 开发库的核心功能、使用方法以及其在实际开发中的应用。 一、核心功能 1. 版本控制:ClearCase for Java 提供了API接口,使开发者能够直接操作版本库,包括创建、查看、修改和...
本文档旨在详细介绍ClearCase客户端在Windows操作系统下的使用方法,包括但不限于安装、配置、基本操作以及如何与常见开发工具进行集成。 #### 二、安装 ##### 2.1 安装前提 - **操作系统要求**:建议使用Windows...
ClearCase for Eclipse 插件是 IBM 提供的,旨在让开发者能够在 Eclipse 平台上无缝地使用 ClearCase 的功能。通过这个插件,开发者可以无需离开 Eclipse,就能进行版本控制操作,如查看、提交、合并代码,创建和...
使用此插件不仅简化了ClearCase的日常操作,也提升了开发者的生产力,使得他们能够在熟悉的Eclipse或MyEclipse环境中进行高效的版本控制工作。对于经常处理复杂项目和多版本协同的团队来说,这个插件是不可或缺的...
6. **创建和使用视图**:视图是 ClearCase 中查看和操作 VOB 内容的方式。动态视图和静态视图是两种主要类型,它们各自有不同的使用场景和优缺点。手册将详细阐述如何创建、配置和使用这两种视图。 7. **基础操作**...
在使用插件时,开发者可以轻松地将工作目录与ClearCase的视图关联,创建版本控制的源代码。插件提供了图形化的视图,清晰地展示了代码的历史版本、分支和合并状态。此外,通过集成的冲突解决机制,插件能够帮助...
2. **安装rpm包**:使用`rpm`命令进行安装,如`sudo rpm -ivh ClearCase_for_Linux.rpm`,可能需要使用`--force`参数解决依赖问题。 3. **配置许可证服务器**:如果使用网络许可证,需要配置许可证服务器,设置`...
《ClearQuest与ClearCase安装及使用手册》是针对IBM Rational软件生命周期管理工具的重要参考资料,它详细阐述了如何在操作系统环境中安装、配置以及有效利用这两款工具。ClearQuest是一款强大的问题跟踪系统,而...
在Windows 32位系统上,Clearcase for Java通过JNI(Java Native Interface)技术与底层操作系统进行交互,这种技术允许Java代码调用本地库,以充分利用C或C++的性能和特性。而在非Win32平台上,它依赖于'cleartool'...
以上就是Eclipse集成配置管理工具ClearCase (ccrc_for_eclipse)的基本使用方法,包括安装、配置、导入导出项目以及基本的版本控制操作。熟练掌握这些步骤和操作,可以有效地提高开发团队的协作效率和代码管理质量。...
在ClearCase的基本操作中,"Add to Source Control"类似SVN的"Commit",用于将新文件添加到源码控制中。"Checkout/Checkin"是修改和提交文件的操作,如果要编辑文件,必须先Checkout。"Undo Checkout"则是取消...
在这个场景中,“Rational 方法 java实现 数据量”可能指的是使用Java编程语言在Rational方法框架下处理和管理大量数据的过程。以下是关于这个主题的详细讨论: 1. **Java语言基础**: Java是一种多平台的、面向...
在JAVA项目中,通常会涉及到数据库的操作,项目经理至少需要对SQL语言和主流的关系型数据库管理系统有所了解。 7. **服务与接口**:“WebService”、“IO”、“remoting”、“GIS”(地理信息系统)等技术名词表明...
2. **版本控制**:利用 ClearCase UCM 对项目文件进行版本控制,包括创建基线、分支和合并操作。 3. **变更管理**:通过 ClearQuest 实现变更请求的管理,包括提交变更请求、审批流程、变更实施等。 4. **协作开发**...
【知识点详解】 ...以上就是中国平安Java面试题中涉及的关键知识点,涵盖了版本控制、数据结构、操作系统、软件工程、面向对象编程、线程并发、Java语法等多个方面。掌握这些知识点对于Java开发者来说至关重要。
### Java初学者必备知识点详解 #### 一、Java集合框架基础总结 ...以上内容涵盖了Java初学者需要掌握的核心知识点,包括集合框架的使用、高级特性的理解和优化技巧等方面,旨在帮助学习者快速入门Java编程。
ClearCase Plugin for jEdit的出现,旨在解决开发者在使用jEdit时对ClearCase操作的需求,使得开发者无需离开熟悉的编辑环境,即可执行各种ClearCase命令。 该插件的核心功能包括对ClearCase最有用的命令的支持,如...
此外,它还提供了Web操作方式、CCRT(ClearCase Remote Client)和Trigger机制,满足远程开发和自定义需求。 总结来说,JD-GUI是一个方便的Java反编译工具,而ClearCase是一个功能丰富的版本控制系统,两者在软件...
"eclipse_cc" 指的是 Eclipse 针对 IBM Rational ClearCase 的集成插件,使得开发者能够在 Eclipse 环境下有效地管理和操作 ClearCase 版本控制系统。 IBM Rational ClearCase 是一款强大的软件配置管理工具,它...