我有一點問題。我有一個Java程序,當它啓動時創建一個JFrame,並在另一個線程中執行一個進程。最後一個過程使用「System.out.println」將消息記錄到標準輸出。我想執行這個Java程序,並看到JFrame,但不是控制檯。我希望其他進程的日誌記錄到文件中。我在.bat文件中編寫了這條指令:使用JFrame和控制檯從.bat執行java程序
start javaw -jar InterceptorProcess.jar > logger.log 2>&1
但是,它不起作用。我看到了JFrame,另一個進程正在運行,但這些消息沒有進入「logger.log」。我需要在蝙蝠身上做些什麼改變?如果不改變java程序,也許是不可能的。
問候!
這是java程序的代碼:
public class InterceptorProcess
{
public static void main(String[] args)
{
FrameInterceptor frame = new FrameInterceptor();
frame.setResizable(false);
frame.setTitle("HELLO!");
Image icon = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB_PRE);
frame.setIconImage(icon);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
System.out.println("HELLO WORLD!");
}
}
如果您啓動另一個進程並且不重定向該進程的'stdout'和'stderr',它將不會被捕獲到您的java程序的輸出中。在這一點上,它將成爲自己的IO管道。 – 2015-01-09 22:43:26
@Ryan J,另一個過程是一個線程。代碼也放入「.jar」文件中。 – Nico 2015-01-09 22:45:26
你的OP說「...在另一個線程中執行一個進程。」我讀到「我在另一個線程中執行進程」。你在執行什麼「過程」?另外,發佈一些代碼,以便我們可以看到它。 – 2015-01-09 22:49:41