我是创建自定义 URI 方案的新手,我正在尝试在 Windows 7 系统中使用 URI 方案启动可执行 jar 文件。
为了从命令提示符运行此 jar 文件,我使用以下命令:
java -jar demo.jar
编辑:
为了使用自定义 URI 方案启动该程序,我创建了一个.reg
包含以下条目的文件(摘自以下帖子):
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\DemoStart]
"URL Protocol"=""
[HKEY_CLASSES_ROOT\DemoStart\shell]
[HKEY_CLASSES_ROOT\DemoStart\shell\open]
[HKEY_CLASSES_ROOT\DemoStart\shell\open\command]
@="\"java.exe\" -jar \"C:\\Users\\John\\Desktop\\demo.jar\""
由于以下原因,此方法不起作用:
我尝试运行的可执行 jar 文件demo.jar
是第三方提供的 jar 文件,它对 XML 配置文件有相当多的依赖关系,这些文件也位于包含 jar 文件的同一文件夹中。我没有权限更改 jar 文件中的任何代码。
"java.exe" -jar "demo.jar"
使用命令提示符,仅当我导航到包含demo.jar
和 的文件夹时,该命令才有效dependent config xml files
。但是,如果我尝试"java.exe" -jar "C:\Users\John\Desktop\demo.jar"
从命令提示符窗口的默认位置(在我的情况下是C:\Users\John
)运行命令:则该命令不起作用,因为依赖的配置 xml 文件不可用。
因此,我需要在执行 jar 文件之前找到一种更改命令提示符的默认位置的方法。
请建议是否可以在C:\Users\John\Desktop
我触发自定义 URI 时设置命令提示符的默认位置(在这种情况下,无需导航到其他位置,命令应该可以正常工作)。
答案1
您的.reg
文件看起来不正确。格式非常奇怪。它应该看起来更像这样:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\DemoStart]
"URL Protocol"=""
[HKEY_CLASSES_ROOT\DemoStart\shell]
[HKEY_CLASSES_ROOT\DemoStart\shell\open]
[HKEY_CLASSES_ROOT\DemoStart\shell\open\command]
@="\"java.exe\" -jar \"C:\\Users\\John\\Desktop\\demo.jar\""
如果这仍然不起作用,请仔细检查 java 是否在您的 PATH 中。如果是,并且它仍然不起作用,尝试用 Java exe 的完整路径替换“java”。