从JAVA代码调用HTML页面
我试图从JAVA代码中调用存储在桌面上的HTML文件,如下所示。从JAVA代码调用HTML页面,java,html,Java,Html,我试图从JAVA代码中调用存储在桌面上的HTML文件,如下所示。 我找到了这个代码片段 我尝试使用反斜杠和正斜杠,两者都有。但在这两种情况下,它都抛出了这个错误 java.io.IOException: Cannot run program "C:/Program": CreateProcess error=2, The system cannot find the file specified at java.lang.ProcessBuilder.start(ProcessBuild
我找到了这个代码片段 我尝试使用反斜杠和正斜杠,两者都有。但在这两种情况下,它都抛出了这个错误
java.io.IOException: Cannot run program "C:/Program": CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1041)
at java.lang.Runtime.exec(Runtime.java:617)
at java.lang.Runtime.exec(Runtime.java:450)
at java.lang.Runtime.exec(Runtime.java:347)
at package1.Test.main(Test.java:22)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(ProcessImpl.java:376)
at java.lang.ProcessImpl.start(ProcessImpl.java:136)
java.io.IOException:无法运行程序“C:/program”:CreateProcess错误=2,系统找不到指定的文件
位于java.lang.ProcessBuilder.start(ProcessBuilder.java:1041)
位于java.lang.Runtime.exec(Runtime.java:617)
位于java.lang.Runtime.exec(Runtime.java:450)
位于java.lang.Runtime.exec(Runtime.java:347)
位于package1.Test.main(Test.java:22)
原因:java.io.IOException:CreateProcess error=2,系统找不到指定的文件
在java.lang.ProcessImpl.create(本机方法)
位于java.lang.ProcessImpl。(ProcessImpl.java:376)
在java.lang.ProcessImpl.start(ProcessImpl.java:136)
存在“浏览器”路径。请指出我哪里做错了。如果您使用的是32位版本的浏览器,则应该是
String browser=“C:/Program Files(x86)/Mozilla Firefox/Firefox.exe”代码>
希望这有助于更好的建议
用于此类任务。您应该尝试一下。我保证您一定会发现它很有用。问题在于浏览器路径中的空间。系统认为您正在尝试运行一个名为“C:/program”的程序,其中“Files/Mozilla”和“Firefox/Firefox.exe”作为参数。尝试在exe名称周围添加引号:
String browser ="\"C:/Program Files/Mozilla Firefox/firefox.exe\" ";
要结合SnakeDoc的建议,您可以使用环境变量来处理“程序文件”的路径部分,但仍需要引号来处理路径中的任何其他空格:
String browser = "\"" + System.getenv("ProgramFiles(X86)") + "Mozilla Firefox/firefox.exe\"";
尝试使用系统属性:
System.getenv("ProgramFiles");
或
试一试
程序文件中的空格有问题,如果不在引号内,则将其视为分隔符。这是微软的一个好主意……最好的方法是使用java.awt.Desktop
File htmlFile = new File("C:" + File.separator + "Users" + File.separator + "theuser" + File.separator + "Desktop" + File.separator + "Test.html");
if(Desktop.isDesktopSupported()) {
Desktop.getDesktop().open(htmlFile);
}
第一行表示无法运行程序C:/program
——这不是您试图运行的程序。我认为路径中的空格使它无法工作。或者:stringbrowser=System.getenv(“ProgramFiles(X86)”)+“Mozilla Firefox/Firefox.exe”代码>酷-不知道程序文件有一个环境变量。“Mozilla”和“Firefox”之间的空间可能仍然有问题,对吗?实际上不确定。。。我喜欢尽可能地使用环境变量,这有助于使我的程序更具动态性,减少静态/硬编码的东西。同意-明确提倡使用环境变量-你可能只需要在完成时引用整个内容…对,这应该很容易<代码>字符串浏览器=“\”+System.getenv(“程序文件(X86)”)+“Mozilla Firefox/Firefox.exe\”代码>
System.getenv("ProgramFiles(X86)");
String browser ="\"C:/Program Files/Mozilla Firefox/firefox.exe\"";
File htmlFile = new File("C:" + File.separator + "Users" + File.separator + "theuser" + File.separator + "Desktop" + File.separator + "Test.html");
if(Desktop.isDesktopSupported()) {
Desktop.getDesktop().open(htmlFile);
}