From: John G. <jge...@ny...> - 2001-08-14 04:46:54
|
The annoyance of having console windows popup when running commands in the Console plugin has been the subject of numerous complaints, even jEdit bug reports. It is actually a long-standing bug in the Java platform for Windows, one that apparently is not fixed in the recent JDK1.4 beta. I have written a small application which works around the bug by hiding the command interpreter window when a console program is run. When used with the Console plugin, it pipes the output of any console program back to the plugin and returns the child process's return code. This utility differs from what I have seen elsewhere in that it distinguishes between console and non-console programs and treats both correctly. The attached archive contains the source code and an executable, "jcmd.exe". The archive is under 15K, so I hope users of other operating systems will not be offended by the size of the posting. The easiest way to use the utility is to copy the executable into a directory on your search path, and then call it as the first token in a Console command line: for example, "jcmd nmake -fmyfile.mak". I have tested jcmd under Windows 2000 SP2 on a variety of console and non-console programs, and it seems to run transparently. The only change you should notice occurs when you call a non-existent command. The utility writes its own error message to the error output stream in that circumstance. You may also notice a very small delay when using the utility to run non-console programs (which is not at all its primary purpose). I believe that jcmd could be incorporated into the Console plugin, perhaps as the centerpiece of a "WinConsole" shell. I thought I would get the utility out while the new Console version is nearing completion to get some feedback from users. Comments, suggestions, and bug reports are all welcome. John |