【发布时间】:2018-12-02 19:08:51
【问题描述】:
我在没有管理员权限的 Windows 7 上运行 openjdk
我通过资源管理器“打开方式”对话框选择 java 作为“打开”.jar 文件的程序。 要通过(双击)单击运行 .jar 文件,Windows 会执行类似
的操作java(文件名).jar
然而,java需要参数-jar,即:
java -jar (文件名).jar
要进行此设置,用户需要管理员权限才能使用 assoc 和 ftype,
或按照以下答案中的说明实施寄存器编辑。
另一种解决方法是使用批处理文件,例如javastart.bat:
列出 javastart.jar
start java -jar %1
在浏览器“打开方式”对话之后,这有效。 单击 jar 文件将打开命令窗口,这将启动 java。
但是,当 java 运行时,命令窗口也打开了,这很丑。
编辑
必须调用javaw.exe,然后命令窗口将关闭:
start javaw.exe -jar %1
关闭命令窗口不需要以下脚本
编辑结束
为了解决这个问题,我启动了一个 vbs 脚本。
新列表 javastart.jar
start startjar.vbs %1
还有 startjar.vbs:
Set args = Wscript.Arguments
cmd = "java -jar " & chr(34) & args(0) & chr(34)
Set WshShell = CreateObject("WScript.Shell")
CreateObject("Wscript.Shell").Run cmd, 0, True
这行得通:现在我得到一个启动 vbs 的命令窗口的短暂闪烁,然后无窗口 vbs 脚本启动 java 和 jar 文件。
但是,当我直接用 startjar.vbs 打开 jar 文件时(右键单击 jar 文件,而不是通过对话框打开),jar 文件的名称不会作为参数传递给 vbs,而是windows 尝试直接运行 jar 文件(并给出错误:“.jar 文件不是有效的 win32 应用程序”)。
为什么 Windows 资源管理器不将文件名作为参数发送给 vbs 脚本?
【问题讨论】:
-
要进行此设置,用户需要管理员权限... 不正确。
HKCR下的设置来自HKCU\Software\Classes和HKLM\Software\Classes。您当然可以编辑HKCU设置,因为它们是您的。 -
可能是真的,但应该编辑哪个设置?以下编辑(在“a”之后)似乎不起作用: [HKEY_USERS\....\Explorer\FileExts\.jar\OpenWithList] "a"="java.exe -jar" "MRUList"="bca" " b"="startjar.bat" "c"="startjar.vbs"