【发布时间】:2015-04-01 18:13:32
【问题描述】:
我有一个要从 bash 脚本启动的 jar 文件。此 jar 包含对包含图像的外部文件夹的引用。
当我使用 jar 的绝对路径从命令行运行 jar 时,一切正常。当我从 bash 脚本运行它时会出现问题。显然找不到包含图像的文件夹。
从命令行启动:
java -Djava.library.path=/opt/opencv/build/lib -Xmx1g -jar /home/version4/Podo.jar
Bash 脚本:
#! /bin/bash -x
cmd="java -Djava.library.path=/opt/opencv/build/lib -Xmx1g -jar /home/version4/Podo.jar"
eval $cmd
我的图片所在的目录是: /home/version4/img
用于访问图像的 Java 代码:
String img_header="./img/HEADER.png";
String img_body="./img/BODY.png";
BufferedImage header,body;
header=ImageIO.read(new File(img_header));
body=ImageIO.read(new File(img_body));
输出错误:
javax.imageio.IIOException: Can't read input file!
at javax.imageio.ImageIO.read(ImageIO.java:1301)
谁能告诉我我做错了什么?谢谢。
【问题讨论】:
-
为什么你在这里使用
eval而不仅仅是运行命令? -
即使我只运行命令也是一样的;我第一次这样做,比我读到我最好使用 eval :|
-
好的,那么你用
-x运行你的脚本,它应该会输出运行命令。那么输出是什么? -
如何检索图像?向我们展示代码。
-
图片的目录是什么?应用程序将其称为绝对路径还是相对路径?