今天早上做實驗,做的是一個基于RMI的會議議程系統(tǒng),每次運行都的打開DOS,輸入RMIC,再輸入RMIRegistry,很麻煩,心里就想著既然這么麻煩,我就寫一個程序,一口氣都執(zhí)行了,省的麻煩。
想了兩個解決方法,一個就是利用Ant的API,不過這個代碼只能RMIC代碼,不能執(zhí)行RMIRegistry,代碼如下,有注釋,絕對原創(chuàng)!呵呵
-
-
-
-
- private final static String CLASSPATH = "C:/Program Files/Java/jdk1.5.0_04/lib/tools.jar";
-
- public static void main(String[] args) {
-
- if (args.length == 0) {
- System.out.println("沒有輸入類!");
- System.exit(0);
- }
-
- String classPath = getPath();
- String classname = args[0];
- System.out.println("要編譯的類名為:" + classname);
- try {
- Class.forName(classname);
- } catch (ClassNotFoundException e) {
- System.out.println("無此類");
- System.exit(0);
- }
- Project project = new Project();
- Rmic compiler = new Rmic();
- compiler.setProject(project);
- Path path = new Path(compiler.getProject(), CLASSPATH);
- compiler.setClasspath(path);
- FilenameSelector filenameSelector = new FilenameSelector();
- filenameSelector.setName("*.java");
- compiler.addFilename(filenameSelector);
- compiler.setClassname(classname);
- compiler.setStubVersion("1.1");
-
-
- compiler.execute();
- }
這個使用了ANT技術(shù),但是還不能讓RMIRegistry啟動,所以使用了Runtime這個類,來調(diào)用cmd命令,寫一個后綴是.cmd的cmd文件
文件內(nèi)容如下,其實就是你打開DOS輸入的命令
cd D:\toNj\rmi\bin //是我的類路徑
rmic -v1.1 rmi.server.impl.MeetManager //包名加類名
rmiregistry 9000 //啟動9000端口作為名字服務(wù)端口
接下來使用這段代碼就OK了
- Runtime rt = Runtime.getRuntime();
- Process p = rt.exec("./src/rmic/text.cmd");
- p.waitFor();