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