以管理员身份从Java运行Windows命令行 – 创建.manifest文件

我正在运行Windows 7 Pro并在Eclipse中处理Java应用程序。 我需要Eclipse将用户指定的命令(例如’chkdsk C:’)发送到命令提示符,然后输出到Eclipse中的控制台,无论命令提示符是否打印。 我有发送命令工作和接收文本回来。 但是,当我运行chkdsk时,我需要拥有命令会话的管理员权限。 我从这里的post看到:

Java:以管理员身份运行

一种方法是通过.manifest文件。 但是,我无法理解如何为Java创建清单文件:

.manifest文件是否只使用.CLASS文件进入Eclipse工作区? 如果我把它放在那里,每当我运行程序时,它会自动运行以在管理模式下启动我的程序吗?

从以上线程给出的链接:

http://msdn.microsoft.com/en-us/library/bb756929.aspx

似乎是特定于Visual-Studio,是否有示例代码适用于Java程序.manifest文件? 我是否需要在Visual Studio中创建.manifest文件,或者它只是一个文本文件?

另外,清单文件的名称是yourProgram.exe.manifest … Java,据我所知,它不会创建.exe类的可执行文件吗? 清单文件是否应如上所述命名,还是需要像yourProgram.CLASS.manifest这样的名称?

感谢您的任何帮助!

此处描述的应用程序清单和Java清单文件(在META-INF / MANIFEST.MF的JAR文件中)是两个完全独立的概念,它们只共享一个名称。 META-INF / MANIFEST.MF中没有任何内容可以帮助Java可执行文件获得提升。

此外,它需要提升的JVM,而不是类文件。 将.manifest文件与所有类文件放在一起将无法实现。

如果我必须做这样的事情,我首选的方法是使用诸如elevate.exe的程序来调用CHKDSKelevate.exe可以在你提到的问题链接到的博客文章中找到。 我没有测试过elevate.exe ,而且作者最初是为Windows Vista编写的,所以我不知道它在Windows 7上有多好用。

似乎CHKDSK是您的应用程序中唯一需要提升的部分。 如果是这样,从安全的角度来看,在大多数时间没有管理的情况下,不要让整个应用程序一直处于提升状态。