当您从 java GUI 运行它时出现的一个问题是它在后台运行。所以你根本看不到命令提示符。
要解决这个问题,您必须通过“cmd.exe”和“start”运行 java.exe。我不知道为什么,但如果你把“cmd /c start”放在前面,它会在运行时显示命令提示符。
但是,“开始”的问题在于,如果应用程序的路径中有空格(java exe 的路径通常有,因为它在 C:\Program Files\Java\jre6\bin\java.exe或类似),然后启动失败并显示“找不到 c:\Program”
所以你必须在 C:\Program Files\Java\jre6\bin\java.exe 周围加上引号 现在开始抱怨你传递给 java.exe 的参数:“系统找不到文件 -cp。”
用反斜杠转义“程序文件”中的空格也不起作用。所以这个想法是不使用空间。生成一个带有 bat 扩展名的临时文件,然后将带有空格的命令放在那里并运行 bat。但是,通过 start 运行 bat,完成后不会退出,因此您必须将“exit”放在批处理文件的末尾。
这看起来还是很恶心。
因此,在寻找替代方案时,我发现在“程序文件”的空间中使用引号空间引号实际上可以与 start 一起使用。
在上面的 EXECUTE 类中,将字符串生成器附加到:
append( "cmd /C start \"Some title\" " ).
append( java.lang.System.getProperty( "java.home" ).replaceAll(" ", "\" \"") ).
append( java.io.File.separator ).
append( "bin" ).
append( java.io.File.separator ).
append( "java" ).
append( " " ).
append( new java.io.File( "." ).getAbsolutePath() ).
append( java.io.File.separator ).
append( CLASS_TO_BE_EXECUTED ).