Одна консоль в затмении как для сервера, так и для клиента - PullRequest
1 голос
/ 25 апреля 2010

Я создаю клиент-серверное приложение с использованием сокетов Java (в Windows XP). Для этого мне нужны разные консоли как для клиента, так и для сервера (для операций ввода и вывода). Но в затмении оба делят одну консоль. Есть ли какой-нибудь плагин или какой-то чит, с помощью которого я могу это сделать.

После поиска в Google я получил это,

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


Хорошо, Гайз, ранее я не знал, что в Eclipse доступно несколько консолей. Но теперь я получил это от здесь , поэтому закрываем эту ветку. Приветствия:)

1 Ответ

0 голосов
/ 25 апреля 2010

Я обнаружил, что вы можете сделать это только с отдельными запусками в Eclipse (поэтому вам нужно запустить сначала ваш сервер, а затем ваш клиент).

К сожалению, каждая консоль является панелью в представлении консоли, а не собственной консолью, поэтому вам придется переключаться вручную, но это лучшее, что я нашел на данный момент.

...