【问题标题】:Shutdown Remote Computer in Java- Cannot initiate shutdown but no errors用 Java 关闭远程计算机 - 无法启动关闭但没有错误
【发布时间】:2012-06-25 04:12:13
【问题描述】:

我正在学习 java 中的 Runtime 类,并正在测试其中命令行指令的使用。我正在尝试使用 Runtime.getRuntime().exec(...); 远程关闭计算机;当我运行它时,没有错误,但指定的机器没有关闭。我不知道为什么。

代码:

import java.io.IOException;

class shutdownVirus {
    public static void main(String[] args) throws IOException {
        Runtime.getRuntime().exec("shutdown -m \\\\T12-LEOPARDIJ -s -t 10");
    }
}

任何帮助将不胜感激。 谢谢

【问题讨论】:

  • 当您直接从命令行运行命令时(中间没有 Java),该命令是否按预期工作?
  • exec 方法返回一个Process 对象。调用它后等待一段时间并检查返回的Process 对象的exitValue 和/或通过读取getInputStream()getErrorStream() 返回的流来检查是否有写入标准的内容或错误输出。
  • 不,它说“T12-LEOPARDIJ- 访问被拒绝。(5)
  • 在调用进程对象后你将如何等待时间?你是说从流程对象的流中读取?
  • 您可能想试试 [this][1]。 [1]:stackoverflow.com/questions/25637/…

标签: java shutdown


【解决方案1】:

它可能不起作用,因为您运行 Java 类的 VM 是从没有关闭权限的用户启动的。该进程将继承这些访问限制,因此不允许关闭。

可以说这是一件好事..

【讨论】:

  • 通过说“可以说那是一件好事......”您是否暗示我正在尝试以恶意手段进行此操作?不要妄下结论...
  • 我不是。无论是否恶意,JVM 都不能在操作系统安全限制之外运行任何东西。我并不是在暗示你在做一些恶意的事情。我的意思是你应该获得正确的访问权限来做你想做的事。
【解决方案2】:

试试

Runtime.getRuntime().exec("shutdown -s");

编辑部分:

使用这个。

shutdown /s /m <Computer_Name> 关闭远程电脑

【讨论】:

  • 这行得通,但是您知道 shutdown -s 只会关闭用户,而不是远程计算机吗?
  • shutdown /s /m – 关闭远程 PC
猜你喜欢
  • 1970-01-01
  • 2012-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-21
  • 2014-03-06
  • 1970-01-01
  • 2022-06-16
相关资源
最近更新 更多