[英]Image file cannot be located java
我正在使用eclipse,我的代码:-
package arrowRecog;
import org.sikuli.api.*;
import java.io.File;
import arrowRecog.res.*;
public class FocusTrain
{
public static void main(String[] args) throws Exception
{
Target oneDown = new ImageTarget(new File("arrowRecog.res","1down.jpg"));
}
}
那个树:
http://i1316.photobucket.com/albums/t601/Preformer/tree_zps1e15285b.jpg
例外:
http://i1316.photobucket.com/albums/t601/Preformer/error_zps05bc7502.jpg
问题是字符串文字的“ \\ 1”部分。 这不是反斜杠,后跟1-这是八进制转义序列,产生U + 0001。 要获取您想要的字符串,您需要:
Target oneDown = new ImageTarget(new File("arrowRecog.res\\1down.jpg"));
或更好-更便携:
Target oneDown = new ImageTarget(new File("arrowRecog.res/1down.jpg"));
甚至更好:
Target oneDown = new ImageTarget(new File("arrowRecog.res", "1down.jpg"));
(实际上,我使用过Java的每个平台都可以将/
用作目录分隔符,但是使用File
构造函数使用两个字符串通常仍然是一个好主意。)
我不知道为什么要将非源代码资源放入src目录。 Eclipse将这里的目录解释为软件包,因此它们以“ folder.subfolder”格式显示。 File类使用的是文件系统,而不是Java类路径格式,因此“ arrowRecog.res”不会被解释为带有“ res”子目录的“ arrowRecog”目录,但是它将搜索“ arrowRecog.res”目录-不存在。 换句话说,点将不被用作路径定界符,而是作为目录名的一部分。
另外,由于您使用的是相对路径,所以这意味着相对于工作目录。 默认情况下,工作目录是Eclipse中项目的主目录(如果我没记错的话)。 因此,您在路径中缺少“ src”目录。
new File("src/arrowRecog/res/1down.jpg")
要么
new File("arrowRecog/res/1down.jpg")
应该可以工作,具体取决于工作目录的设置方式。
最好的办法是在src目录旁边创建一个新目录(例如,称为res ),所有图像都移至该目录。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.