`

用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;
}

其中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;
}
}
}
}

调用以上的方法:

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);
}

上面代码的几点说明:
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后,剩下的都是字符串操作.

分享到:
评论
1 楼 jeffchen 2009-05-26  
看一下能评论吗

相关推荐

    clearcase for java 开发库

    本文将深入探讨ClearCase for Java 开发库的核心功能、使用方法以及其在实际开发中的应用。 一、核心功能 1. 版本控制:ClearCase for Java 提供了API接口,使开发者能够直接操作版本库,包括创建、查看、修改和...

    ClearCase使用中文教程

    本文档旨在详细介绍ClearCase客户端在Windows操作系统下的使用方法,包括但不限于安装、配置、基本操作以及如何与常见开发工具进行集成。 #### 二、安装 ##### 2.1 安装前提 - **操作系统要求**:建议使用Windows...

    clearcase for eclipse plugins

    ClearCase for Eclipse 插件是 IBM 提供的,旨在让开发者能够在 Eclipse 平台上无缝地使用 ClearCase 的功能。通过这个插件,开发者可以无需离开 Eclipse,就能进行版本控制操作,如查看、提交、合并代码,创建和...

    好用的clearcase插件

    使用此插件不仅简化了ClearCase的日常操作,也提升了开发者的生产力,使得他们能够在熟悉的Eclipse或MyEclipse环境中进行高效的版本控制工作。对于经常处理复杂项目和多版本协同的团队来说,这个插件是不可或缺的...

    ClearCase(V7.0)安装手册.rar

    6. **创建和使用视图**:视图是 ClearCase 中查看和操作 VOB 内容的方式。动态视图和静态视图是两种主要类型,它们各自有不同的使用场景和优缺点。手册将详细阐述如何创建、配置和使用这两种视图。 7. **基础操作**...

    clearcase2013

    在使用插件时,开发者可以轻松地将工作目录与ClearCase的视图关联,创建版本控制的源代码。插件提供了图形化的视图,清晰地展示了代码的历史版本、分支和合并状态。此外,通过集成的冲突解决机制,插件能够帮助...

    ClearCase for Linux安装攻略

    2. **安装rpm包**:使用`rpm`命令进行安装,如`sudo rpm -ivh ClearCase_for_Linux.rpm`,可能需要使用`--force`参数解决依赖问题。 3. **配置许可证服务器**:如果使用网络许可证,需要配置许可证服务器,设置`...

    clearquest&clearcase安装使用手册

    《ClearQuest与ClearCase安装及使用手册》是针对IBM Rational软件生命周期管理工具的重要参考资料,它详细阐述了如何在操作系统环境中安装、配置以及有效利用这两款工具。ClearQuest是一款强大的问题跟踪系统,而...

    Clearcase for Java-开源

    在Windows 32位系统上,Clearcase for Java通过JNI(Java Native Interface)技术与底层操作系统进行交互,这种技术允许Java代码调用本地库,以充分利用C或C++的性能和特性。而在非Win32平台上,它依赖于'cleartool'...

    Eclipse集成配置管理工具ClearCase(ccrc_for_eclipse)知识.pdf

    以上就是Eclipse集成配置管理工具ClearCase (ccrc_for_eclipse)的基本使用方法,包括安装、配置、导入导出项目以及基本的版本控制操作。熟练掌握这些步骤和操作,可以有效地提高开发团队的协作效率和代码管理质量。...

    Eclipse集成配置管理工具ClearCase(ccrc_for_eclipse).pdf

    在ClearCase的基本操作中,"Add to Source Control"类似SVN的"Commit",用于将新文件添加到源码控制中。"Checkout/Checkin"是修改和提交文件的操作,如果要编辑文件,必须先Checkout。"Undo Checkout"则是取消...

    Rational 方法 java实现 数据量

    在这个场景中,“Rational 方法 java实现 数据量”可能指的是使用Java编程语言在Rational方法框架下处理和管理大量数据的过程。以下是关于这个主题的详细讨论: 1. **Java语言基础**: Java是一种多平台的、面向...

    JAVA项目经理面试题.pdf

    在JAVA项目中,通常会涉及到数据库的操作,项目经理至少需要对SQL语言和主流的关系型数据库管理系统有所了解。 7. **服务与接口**:“WebService”、“IO”、“remoting”、“GIS”(地理信息系统)等技术名词表明...

    Eclipse +ClearCase UCM +ClearQuest 集成环境

    2. **版本控制**:利用 ClearCase UCM 对项目文件进行版本控制,包括创建基线、分支和合并操作。 3. **变更管理**:通过 ClearQuest 实现变更请求的管理,包括提交变更请求、审批流程、变更实施等。 4. **协作开发**...

    中国平安java面试题选集

    【知识点详解】 ...以上就是中国平安Java面试题中涉及的关键知识点,涵盖了版本控制、数据结构、操作系统、软件工程、面向对象编程、线程并发、Java语法等多个方面。掌握这些知识点对于Java开发者来说至关重要。

    java初学者必备

    ### Java初学者必备知识点详解 #### 一、Java集合框架基础总结 ...以上内容涵盖了Java初学者需要掌握的核心知识点,包括集合框架的使用、高级特性的理解和优化技巧等方面,旨在帮助学习者快速入门Java编程。

    ClearCase Plugin for jEdit-开源

    ClearCase Plugin for jEdit的出现,旨在解决开发者在使用jEdit时对ClearCase操作的需求,使得开发者无需离开熟悉的编辑环境,即可执行各种ClearCase命令。 该插件的核心功能包括对ClearCase最有用的命令的支持,如...

    JD-GUI 反编译工具

    此外,它还提供了Web操作方式、CCRT(ClearCase Remote Client)和Trigger机制,满足远程开发和自定义需求。 总结来说,JD-GUI是一个方便的Java反编译工具,而ClearCase是一个功能丰富的版本控制系统,两者在软件...

    eclipse_cc

    "eclipse_cc" 指的是 Eclipse 针对 IBM Rational ClearCase 的集成插件,使得开发者能够在 Eclipse 环境下有效地管理和操作 ClearCase 版本控制系统。 IBM Rational ClearCase 是一款强大的软件配置管理工具,它...

Global site tag (gtag.js) - Google Analytics