Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用命令行参数启动.jar文件(但没有控制台窗口)_Java_Batch File - Fatal编程技术网

Java 使用命令行参数启动.jar文件(但没有控制台窗口)

Java 使用命令行参数启动.jar文件(但没有控制台窗口),java,batch-file,Java,Batch File,我必须做一个应用程序的演示,这个应用程序有一个server.jar和client.jar。两者都有命令行参数,并且都是可执行的。我需要启动两个server.jar实例和两个client.jar实例 我认为使用批处理文件是可行的,但是,批处理文件执行第一个命令(即>server.bat[argument1][argument2]),并且不执行任何其他操作,除非关闭第一个实例,在这种情况下,批处理文件将运行第二个命令。另外,我不想打开一个空白的控制台窗口(或最小化) 我真正需要的是一个批处理脚本,它

我必须做一个应用程序的演示,这个应用程序有一个server.jar和client.jar。两者都有命令行参数,并且都是可执行的。我需要启动两个server.jar实例和两个client.jar实例

我认为使用批处理文件是可行的,但是,批处理文件执行第一个命令(即>server.bat[argument1][argument2]),并且不执行任何其他操作,除非关闭第一个实例,在这种情况下,批处理文件将运行第二个命令。另外,我不想打开一个空白的控制台窗口(或最小化)

我真正需要的是一个批处理脚本,它可以在没有任何控制台窗口的情况下启动这些应用程序,并启动我需要的所有实例

提前谢谢

编辑:

javaw

如果我键入命令,则该命令有效 将其分别插入控制台窗口。 如果我把它放在批处理文件中, 它将像以前一样工作。安慰 窗口打开,一个实例启动 (以先到者为准)但事实并非如此 继续,除非我关了门 应用程序,在这种情况下,它运行第二个命令。我希望它以静默方式运行所有命令

尝试:

javaw

找到了解决方案,下面是我的批处理文件的内容

@echo off

start /B server.jar [arg1] [arg2]  
start /B server.jar [arg3] [arg4]

start /B client.jar [arg5]
start /B client.jar [arg6]

@echo on
这将打开、运行所有命令并关闭窗口,而不等待命令完成


我仍然不知道如何防止窗户完全打开。

好了,在绞尽脑汁之后,我的解决办法来了

@echo off
start /B javaw -jar -Xms16m -Xmx512m client.jar
@echo on

我希望它对某些人有用。

如果我单独在控制台窗口中键入命令,它就会起作用。如果将其放入批处理文件中,则其行为将与以前相同。控制台窗口打开,一个实例启动(以先启动的为准),除非我关闭应用程序,否则不会继续运行。如果您不需要控制台窗口,则不要使用批处理文件。批处理文件总是以
cmd
开头,因此最终总是有一个控制台窗口。@Joey它与cmd和non-cmd没有什么关系。使用
javaw.exe
而不是
java.exe
Python与
pyw.exe
vs
py.exe
有一个好处:要最小化版本之间的断开链接,请使用“公共”可执行路径。在我的计算机上:
C:\ProgramFiles(x86)\Common Files\Oracle\Java\javapath\javaw.exe
@JonGrah:启动批处理文件时会出现
cmd
窗口。这与批处理文件的功能无关。但事实上,如果只是在没有控制台窗口的情况下启动JAR,还必须使用
javaw
(或者使用JRE作为DLL的自定义包装器)。
@echo off
start /B javaw -jar -Xms16m -Xmx512m client.jar
@echo on