簡體   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