CreateProcess error=5, 拒绝访问。
程序员文章站
2022-05-12 15:57:25
...
CreateProcess error=5, 拒绝访问。
使用JAVA的Runtime.getRuntime().exec()遇到的bug
今天在使用一个wkhtmltopdf工具的时候需要用到JAVA的一个方法,*Runtime.getRuntime()返回当前应用程序的Runtime对象,该对象的exec()方法指示Java虚拟机创建一个子进程执行指定的可执行程序,并返回与该子进程对应的Process对象实例。通过Process可以控制该子进程的执行或获取该子进程的信息。。。。。。。*附一个对此功能的介绍链接:Runtime.getRuntime().exec()
报错的代码时这样,猜测原因是文件夹访问不到,或者无法调用到命令。
public class WKTest {
public static void main(String[] args) {
String cmd = "D:/programfiles/wkhtmltopdf/bin --quality 75 https://www.nowcoder.com D:\\work\\wk-images/3.png";
try{
Runtime.getRuntime().exec(cmd);
System.out.println("ok");
}catch(IOException e){
e.printStackTrace();
}
}
}
java.io.IOException: Cannot run program "D:/programfiles/wkhtmltopdf/bin": CreateProcess error=5, 拒绝访问。
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at java.lang.Runtime.exec(Runtime.java:620)
at java.lang.Runtime.exec(Runtime.java:450)
at java.lang.Runtime.exec(Runtime.java:347)
at com.nowcoder.community.WKTest.main(WKTest.java:15)
Caused by: java.io.IOException: CreateProcess error=5, 拒绝访问。
在java中,RunTime.getRuntime().exec()实现了调用服务器命令脚本来执行功能需要。也就是说这行代码对文件夹是无法操作的,必须访问完文件夹中的脚本,我这里主要是调用一个.exe文件,修改如下:
public class WKTest {
public static void main(String[] args) {
String cmd = "D:/programfiles/wkhtmltopdf/bin/wkhtmltoimage.exe --quality 75 https://www.nowcoder.com D:\\work\\wk-images/3.png";
try{
Runtime.getRuntime().exec(cmd);
System.out.println("ok");
}catch(IOException e){
e.printStackTrace();
}
}
}
测试正常:
ok
Process finished with exit code 0
上一篇: CreateProcess
下一篇: CreateProcess
推荐阅读
-
sql2005 create file遇到操作系统错误5拒绝访问 错误1802
-
解决Python 删除只读文件/文件夹报错:[WinError 5] 拒绝访问。
-
解决SQL SERVER数据库备份时出现“操作系统错误5(拒绝访问)。BACKUP DATABASE 正在异常终止。”错误的解决办法
-
sql2005 create file遇到操作系统错误5拒绝访问 错误1802
-
Sqlserver 2005附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法
-
java访问数据库被拒绝,不能连接数据库ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
-
无法打开物理文件xxx.mdf操作系统错误 5:“5(拒绝访问。)” (Microsoft SQL Server,错误: 5120)的解决方法
-
python中通过pip安装库文件时出现“EnvironmentError: [WinError 5] 拒绝访问”的问题及解决方案
-
dos命令或批处理 发生系统错误5 拒绝访问
-
SqlServer 2014 还原数据库时提示:操作系统返回了错误5,,拒绝访问