【问题标题】:Gaining access to system drive访问系统驱动器
【发布时间】:2013-09-10 12:58:43
【问题描述】:

我如何获得对系统驱动器的访问权限(我的意思是根目录)。 我需要这个,因为我必须复制我的程序运行所需的 exe 文件之一以复制到系统驱动器中。 我通过将我的程序 (jar) 中的一个 exe 文件复制到系统驱动器来做到这一点,在我的情况下为 (C:/file.exe)。 这是因为它做了一些工作,比如操作注册表或让计算机进入睡眠状态。 我还必须执行诸如关闭计算机之类的任务,但是我使用的是 shutdown.exe 来完成的,但是我找不到任何可以使计算机休眠或关闭显示器的方法 每当我尝试这样做时,我得到的错误是(拒绝访问)或(找不到文件)。 我正在使用 netbeans... 在 jar 中创建它位于:jar name.jar\program name\file.exe 并在 java 文件中(即在 src 中):H:\src\program name\file .exe

我会对完成某些任务的替代方案感到满意。

【问题讨论】:

  • 当您使用 java 标记您的问题时,我想您是在 java 应用程序中执行此操作的。请向我们提供您的代码以及此 .exe 文件在您的 jar 文件结构中的位置。
  • 我正在使用 netbeans... 在 jar 中创建它位于:jar name.jar\program name\file.exe 并在 java 文件中(即在 src 中):H :\src\MotionSenser\file.exe
  • 硬编码文件的路径是一个非常糟糕的主意,并且可能是导致错误的原因。 @Kwebble 的答案是一个很好的建议,因为它使您的文件的位置相对于 jar 的根目录。但我真的很想看看你的 java 代码,否则我不能再帮你了。

标签: java operating-system file-permissions copy-paste permission-denied


【解决方案1】:

我会尝试将文件作为资源放入 jar 中,使用 Class.getResourceAsStream() 检索输入流并将流写入文件。

顺便说一句,将 .exe 作为资源包含在 jar 中的有趣想法。但是它们只运行在 Windows 上,那么如何在其他操作系统上提供相同的功能呢?

【讨论】:

  • 您是否检查了可能原因引发的异常的文档?还有什么例外?
  • 是的,这是我复制出来的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-30
  • 1970-01-01
  • 1970-01-01
  • 2022-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多