繁体   English   中英

无法找到图像文件Java

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM