我正在使用Java套接字(在Windows XP中)构建客户端服务器应用程序。 为此,我需要为客户端和服务器提供不同的控制台(用于输入和输出操作)。但是在eclipse中它们共享一个控制台。是否有任何插件或某种欺骗我可以做到这一点。
谷歌搜索后我得到了这个,
http://dev.eclipse.org/newslists/news.eclipse.newcomer/msg17138.html
但是,这似乎只适用于写操作,而不是读操作。
另外,我尝试了以下手动启动应用程序, 但即使这不起作用........
package mypack;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
public class MySystem {
public static void changeStream(String mainFile) throws IOException{
File temp = new File(".") ;
String parentPath = temp.getCanonicalPath() ;
System.out.println(parentPath);
//creation of batch file starts here
try{
File f = new File(parentPath + "\\a.bat") ;
System.out.println("Created : " + f.createNewFile());
//f.deleteOnExit() ;
FileOutputStream fos = new FileOutputStream(f) ;
String str = "java " + mainFile ;
String batchCommand="@echo off\n"+str+"\npause\nexit";
char arr[] = batchCommand.toCharArray() ;
System.out.println(str) ;
for(int i = 0 ; i < arr.length ; i++){
fos.write(arr[i]) ;
}
fos.close() ;
}
catch(Exception e){
}
//creation of batch file ends here
//execution of batch file starts here
try{
Runtime r = Runtime.getRuntime() ;
System.out.println(parentPath + "\\a.bat") ;
Process p = r.exec(new String[]{"cmd","/k","start a.bat"},null,new File(parentPath)) ;
OutputStream os = (OutputStream)p.getOutputStream() ;
System.setOut( new PrintStream(os) ) ;
System.out.println("Hello");
}
catch(Exception e){
e.printStackTrace();
}
//execution of batch file ends here
}
public static void main(String[] args) throws IOException {
MySystem.changeStream("MySystem") ;
}
}
Ok Guyz,以前我不知道eclipse中有多个控制台可用。 但是现在我从here得到了这个,这就是关闭这个帖子的原因。干杯:)
答案 0 :(得分:0)
我发现你可以通过在Eclipse中单独启动来实现这一点(所以你需要首先启动你的服务器,然后启动你的客户端。)
不幸的是,每个控制台都是Console视图中的一个窗格,而不是它自己的控制台,所以你必须手动切换,但这是我迄今为止发现的最好的。