簡體   English   中英

Java在Eclipse中運行但在Netbeans中運行時無法成功打開文件

[英]Java opens file successfully when run in Eclipse but not in Netbeans

我一直在Eclipse中進行一個項目,該項目需要我打開文件。 它按預期工作。 我將項目導入Netbeans只是為了將其簽出,但是在運行時無法打開該文件。 我認為屏幕截圖在這種情況下最有用:

Netbeans中問題的屏幕截圖

知道是什么問題嗎? 我什至在項目屬性中明確指定了運行目錄,但仍然無法正常運行。

附加信息:

  • 我只是記得我在Eclipse中使用JDK 1.6,但是Netbeans使用的是JDK 1.7-在兩個平台之間,文件路徑解析的處理方式是否不同?

另外,根據一些用戶的建議,我在catch塊中添加了:

System.err.println(new File(inFileName).getAbsolutePath();

它應該返回:

C:\\Users\\David\\Dev\\projects\\Autocuration\\pearltrees_export_02-07-2012.rdf

嘗試手動構建URI之后,

System.out.println(new File(System.getProperty("user.dir")).toURI().resolve(inFileName));

我有以下異常:

Exception in thread "main" java.lang.IllegalArgumentException: Illegal character in path at index 32: pearltrees_export_02-07-2012.rdf

考慮到沒有第32個字符,我假設printStackTrace方法必須在打印之前修剪從異常消息獲得的字符串。

無論如何,Netbeans似乎都使用''(空格)字符作為分隔符來解析Run參數。 但是,當將參數傳遞給main方法時,它也包含該空間。 換句話說,我正在嘗試打開:

"pearltrees_export_02-07-2012.rdf "

而不是:

"pearltrees_export_02-07-2012.rdf"

簡單地修剪參數即可解決問題:

inStream = new FileInputStream(new File(inFileName.trim()));

無論如何,我找不到任何文檔說明這是預期的行為,因為它與java二進制文件(以及我所知的任何其他編輯器)的行為肯定不同。 因此,我認為這是一個錯誤,並提交了錯誤報告:

http://netbeans.org/bugzilla/show_bug.cgi?id=215429

我猜我們將看到Netbeans同事怎么說。

是相同的操作系統嗎? 相同的文件名? 根據給出的消息,文件名似乎有問題。

在catch塊中,應添加以下內容:

System.err.println(new File(inFileName).getAbsolutePath());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM