TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
Answers
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Forums
Monthly Leaders
Forum guidelines
Ken
NA
110
0
Java app console redirect in C# application?
Apr 8 2011 4:47 PM
Hi. I am trying to open a command window and read/write it from a C# forms app. I have a textbox "textBox1" to display output and "textBox2" for me to type commands to the cmd process. This is the code:
ProcessStartInfo info = new ProcessStartInfo("cmd");
info.UseShellExecute = false;
info.RedirectStandardInput = true;
info.RedirectStandardOutput = true;
info.CreateNoWindow = true;
proc = Process.Start(info);
sw = proc.StandardInput;
string buf = "";
StreamReader sr = proc.StandardOutput;
while (serverrunning) {
buf = sr.ReadLine();
textBox1.Text += buf + Environment.NewLine;
textBox1.SelectionStart = textBox1.Text.Length;
textBox1.ScrollToCaret();
Application.DoEvents();
}
This works for regular DOS stuff. When I run it, I get the "Microsoft Windows [Version 6.1.7600], Copyright" etc etc command prompt header. Only issue is I am not receiving the last line of text until I send a CR, I assume because ReadLine is waiting for that to flush its buffer. I can live with that, but then I launch my java app and that is where the real problem starts.
The java app is a Minecraft server. When you fire it up (java -Xms1G -Xmx1G craftbukkit.jar) regularly I get this:
16:42:46 [INFO] Starting minecraft server version Beta 1.4
16:42:46 [INFO] Loading properties
16:42:46 [INFO] Starting Minecraft server on *:25565
16:42:46 [INFO] This server is running Craftbukkit version git-Bukkit-0.0.0-646-gb61ef8c-b670jnks (M
C: 1.4)
16:42:46 [INFO] Preparing level "world"
16:42:46 [INFO] Preparing start region
16:42:46 [INFO] 144 recipes
16:42:47 [INFO] Preparing spawn area: 89%
16:42:47 [INFO] Done (0.117s)! For help, type "help" or "?[/code]
Problem is, when I run it from my C# linked command process I am seeing this in my textbox:
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
c:\dropbox\projects\MinecraftManager\bin\Debug>cd\applications\minecraft\server
c:\Applications\Minecraft\Server>java -Xms1G -Xmx1G craftbukkit-0.0.1-SNAPSHOT.jar
>
>
>
>
>
>
>
>
>
I guess java doesn't do stdout right or something. Is there a way around this?
Reply
Answers (
4
)
Routing