Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.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使用“启动服务”;特别";名称_Java - Fatal编程技术网

Java使用“启动服务”;特别";名称

Java使用“启动服务”;特别";名称,java,Java,我想启动以下两项服务: String s7 = "OracleDBConsoleorcl"; String s8 = "Oracle ORCL VSS Write Service"; 使用此方法: private void startService(String SERVICE_NAME) { String[] script = {"cmd.exe", "/c", "sc", "start", SERVICE_NAME};//to start service try {

我想启动以下两项服务:

String s7 = "OracleDBConsoleorcl";
String s8 = "Oracle ORCL VSS Write Service";  
使用此方法:

private void startService(String SERVICE_NAME) {
    String[] script = {"cmd.exe", "/c", "sc", "start", SERVICE_NAME};//to start service

    try {
        Process p = Runtime.getRuntime().exec(script);
        p.waitFor();
        BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
        String line = reader.readLine();
        while (line != null) {
            if (line.equals("0")) {
                System.out.println(line);
            } else {
                System.out.println(line);
            }
            line = reader.readLine();
        }

    } catch (IOException | InterruptedException e1) {
        System.out.println(e1);
    }
}
这就是问题所在:s7正确启动,但s8没有,因为(我猜)服务名称包含空格,导致此错误:

[SC] StartService: OpenService FAILED 1060:
The specified service does not exist as an installed service.  
我的意思是,服务存在于这里:


有什么我可以试试的吗?我确实尝试了字符串s8=“\”Oracle ORCL VSS写入服务\”;要为cmd提供正确的格式,但两者都不起作用…

显示的字符串不是真实的/内部服务名称


在“服务”列表中打开该条目的属性,您可以看到其服务名称(不包含空格)。

如果您引用它,它是否有效?字符串s8=“\”Oracle ORCL VSS写入服务\”;请在不使用“cmd/c”的情况下尝试它-
sc
是一个
.exe
而不是一个cmd内部命令,这样Java就可以不使用cmd直接执行它。