2011-03-02 2 views
2

Java 응용 프로그램 (Minecraft)이 시작되고 중지 될 때 기본적으로 만든 .exe를 시작/중지 할 수있는 C# NET에서 얼마 전에 응용 프로그램을 작성했습니다.C# NET에서 Java 응용 프로그램 실행

기본적으로 사용자가 내 콘솔 앱에 명령을 입력 할 수 있도록 허용하고 실행중인 .jar 파일로이 명령을 전송할 수있게하여 애플리케이션에 더 많은 기능을 추가하고 싶습니다.

나는 C# NET 응용 프로그램 내부에서 Java 응용 프로그램을 관리 할 수있게 해주는 몇 가지 API가 있지만 지금은 찾을 수없는 stackoverflow에 대해 잠시 전에 읽었습니다.

누구든지이 작업을 수행하는 방법을 알고 있습니까?

답변

1

Process 클래스를 사용하여 C#에서 Java 응용 프로그램을 시작하고 관리하는 경우 C# 응용 프로그램의 입력을 Process.StandardInput을 통해 시작된 Java 응용 프로그램 프로세스로 보낼 수 있습니다.

+0

고맙습니다. 인코딩해야하는지 또는 문자열을 보낼 수 있습니까? –

+0

@Brett Powell : 결과를 인코딩 할 필요가 없다고 확신합니다. 나는 Minecraft에 대해 많이 알지는 못하지만 당신이 [다음] (http://www.minecraftwiki.net/wiki/SMP_Server_commands)와 같은 명령을 내걸고 있다고 생각합니다. 그냥 문자열로 명령을 보낼 수 있어야합니다. Minecraft 포럼과 위키에는 더 많은 정보가있을 수 있습니다. –

0

Minecraft는 시스템의 명령을 받아들이고 시스템 출력에 응답합니다.

응용 프로그램에서 minecraft를 시작하면 기본적으로 새 프로세스가 만들어집니다. 이 프로세스에는 두 개의 스트림이 있습니다. 하나는 시스템 출력이고 다른 하나는 시스템 입력입니다. 이러한 스트림을 확보해야합니다. 스트림에서 시스템으로 문자를 전송하면, 이들은 minecraft에 대한 명령으로 해석됩니다. 시스템에서 스트림을 읽으면 minecrafts 응답을 받게됩니다.

다음 작업은 사용자가 minecraft로 명령을 보내도록하는 것입니다. 이렇게하는 한 가지 방법은 사용자가 파일에 저장하는 웹 페이지의 명령을 입력 할 수있게하는 것입니다. 별도의 스레드를 파일에서 읽고 스트림의 minecraft 시스템에 명령을 쓸 수 있습니다.

+0

분명히 밝혀야 할 것은 당신이 말하는 것입니까? http://www.csharp411.com/c-convert-string-to-stream-and-stream-to-string/ 그래서 "System.IO 사용"을 사용하여 통신합니다. 신청서에서 시작하는 과정에서 생성 된 스트림을 어떻게 "얻는가"? 도와 주셔서 감사합니다! –

+0

조금 더 둘러보고 나면 지금 가지고 있다고 생각합니다. 이 모양이 맞습니까? http://pastebin.com/X8i0w7KZ 물론 StreamWriter/Reader의 범위를 적절하게 변경할 수 있습니다. 하나의 질문이지만, 입력을 Minecraft 용으로 인코딩해야합니까? –

+0

.NET에서 실제로 익숙하지는 않지만 그렇습니다. 나는 미니 크래프트 명령에 국제 문자 또는 특수 문자가 없으면 인코딩이 중요하다고 생각하지 않습니다. – sstendal