|
在一个论坛中无意看到的,觉得不错,转到这里来与大家分享下
Generally speaking you would need to create a new JVM that starts with the same options as we start RFT normally.
So you need to pass the startup.jar that you will find in the installation location.
Question to ask is what exactly is meant by starting RFT engine?
Maybe you can figure out something from this:
It is meant to call an RFT script from another RFT project.
<<<---
public void testMain(Object[] args) throws IOException, InterruptedException
{
//Give the relevant details
String workspace = "C:\\Documents and Settings\\Administrator\\IBM\\rationalsdp7.0\\Workspace\\";
String project = "Project2";
String script = "Script2";
Object parameters = "\"param 1\" \"param 2\""; //Declare this only if parameters need to be passed
Process process;
File file = new File(workspace +File.separatorChar+ project + File.separatorChar + script.replace('.',File.separatorChar) + ".java");
if (!file.exists())
{
System.out.println("Can't find " + script + " in " + project);
System.exit(0);
}
script = script + " ";
String command = "\""+System.getenv("IBM_RATIONAL_RFT_ECLIPSE_DIR")+ File.separatorChar +
"jdk" + File.separatorChar + "bin" + File.separatorChar + "java\"" + " -jar "+ "\"" +
System.getenv("IBM_RATIONAL_RFT_INSTALL_DIR") + File.separatorChar + "rational_ft.jar\""
+ " -playback " + script + parameters + " -datastore \"" + workspace + project + "\"";
process = Runtime.getRuntime().exec(command);
process.waitFor();
}
The customer needs to append this code his script wherever he needs to use callScript() to invoke a script that is not in the current project.
The customer Overwirtes the String workspace with his current workspace as well as project & Script with the concerned project or script that he wants to run.
The parameters should be enterered carefully. each parameter to be passed should be enclosed within quotes like
\"Parameter 1\"
If there is no parameter to be passed then the object parameter may be left blank.
PLEASE SEE THAT "PROJECT->BUILD AUTOMATICALLY" IS CHECKED BEFORE TRYING THIS WORKAROUND.
This method does not invoke scripts that are not in the current workspace |
|