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

以管理员身份从Java运行Windows命令行-创建.manifest文件,java,command-line,manifest,administrator,Java,Command Line,Manifest,Administrator,我正在运行Windows7Pro,并在Eclipse中开发Java应用程序。我需要Eclipse将用户指定的命令(如“chkdsk C:”)发送到命令提示符,然后在Eclipse中向控制台输出命令提示符将打印的内容。我有发送命令的工作和接收文本回来。但是,当我要运行chkdsk时,我需要拥有命令会话的管理员权限。我从这里的线索看到: 实现这一点的一种方法是通过.manifest文件。但是,我很难理解如何为Java创建清单文件: .manifest文件是否与.CLASS文件一起进入Eclipse

我正在运行Windows7Pro,并在Eclipse中开发Java应用程序。我需要Eclipse将用户指定的命令(如“chkdsk C:”)发送到命令提示符,然后在Eclipse中向控制台输出命令提示符将打印的内容。我有发送命令的工作和接收文本回来。但是,当我要运行chkdsk时,我需要拥有命令会话的管理员权限。我从这里的线索看到:

实现这一点的一种方法是通过.manifest文件。但是,我很难理解如何为Java创建清单文件:

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

上述线程中给出的链接:

似乎是特定于VisualStudio的,是否有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
之类的程序调用
CHKDSK
elevate.exe
可以在您提到的问题的链接处找到。我还没有测试过
elevate.exe
,作者最初是为WindowsVista编写的,所以我不知道它在Windows7上运行得如何


看来,
CHKDSK
是应用程序中唯一需要提升的部分。如果是这样的话,从安全角度来看,不让整个应用程序一直处于提升状态是有意义的,因为大部分时间它都可以在没有提升的情况下进行管理。

如Luke Woodward所述,
Java清单(.MF)
Windows样式清单(.manifest)
是两个不同的文件。通常,我们为jar创建一个EXE启动器。类似Launch4J的EXE启动器可以将窗口样式清单嵌入到EXE中。请参阅链接