this.getClass()。getResource("")。getFile()返回路径" file:"在使用IntelliJ / Jetty 8.1.14运行项目时的开头

时间:2014-04-29 14:11:57

标签: java eclipse java-ee intellij-idea jetty

我正在尝试将我的开发环境从Eclipse切换到IntelliJ。我正在开发一个Java EE应用程序,它使用从this.getClass()。getResource("")。getFile()返回的路径来创建一个新的FileInputStream。当使用Eclipse / Jetty(来自Eclipse市场上的Jetty插件)和使用Glassfish生成项目时,返回的字符串看起来像" / C:/ path / to / class / in / jar /&#34 ;。

但是,当使用IntelliJ / Jetty运行项目时(8. *来自http://download.eclipse.org/jetty/stable-8/dist/),返回的文件路径看起来像"文件:/ C:/ path / to / class / in / jar / &#34 ;. '文件:'在字符串的开头导致了一个FileNotFoundException on" new FileInputStream(path)"。

我正在Windows 8上开发。

我可以轻松删除"文件:"从字符串,但我宁愿不更改代码库来修复看似环境问题。有什么我可以做的,以便getFile()不返回以"文件开头的路径:"?

1 个答案:

答案 0 :(得分:0)

想出来。应用程序正在将其中一个子项目部署到jar文件而不是文件夹。这导致URL#getFile()追加"文件:"协议由于某种原因。为了解决这个问题,我进入了模块设置>人工制品> '分解'模块并将子项目的编译输出从jar文件移动到文件夹。