繁体   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