当前位置: 首页 > 知识库问答 >
问题:

this.get类(). getResources("). getFile()返回路径与文件:开始时运行IntelliJ/Jetty 8.1.14项目

苏鸿才
2023-03-14

我正在尝试将我的开发环境从Eclipse切换到IntelliJ。我正在开发一个JavaEE应用程序,该应用程序使用从该应用程序返回的路径。getClass()。getResource(“”)。getFile()创建新的FileInputStream。在使用Eclipse/Jetty(来自Eclipse marketplace上的Jetty插件)运行项目和使用Glassfish进行生产时,返回的字符串类似于“/C:/path/to/class/in/jar/”。

但是,当使用IntelliJ/Jetty(8.*从html" target="_blank">http://download.eclipse.org/jetty/stable-8/dist/)返回的文件路径类似于“file:/C:/path/to/class/in/jar/”。字符串开头的“file:”导致“new FileInputStream(path)”上出现FileNotFoundException。

我正在Windows8上开发。

我可以很容易地从字符串中去掉“file:”,但我宁愿不更改代码库来修复似乎是环境问题的东西。我能做些什么使getFile()不返回以“file:”开头的路径吗?

共有1个答案

耿志义
2023-03-14

我明白了。应用程序正在将其中一个子项目部署到jar文件而不是文件夹中。由于某种原因,这导致URL#getFile()附加了“file:”协议。为了解决这个问题,我转到模块设置

 类似资料:
  • 我正在更新一个系统,以满足客户的额外要求。这是一个运行在java 1.4.2上的旧系统,使用maven和jdk 1.50_11编译。 系统的一部分是加载属性文件。使用的语法是: 我没有对代码做任何更改。但是,当我在Linux中部署jar文件时,它创建了一个不正确的文件路径。目前,我的文件。txt与编译的jar位于同一文件夹中,上面的代码从旧jar获得正确的文件路径。但是,对于新编译的jar文件,M

  • 问题内容: 使用Eclipse IDE。该行: 返回。我已经在项目的根目录下创建了该文件夹。 感兴趣的代码是: 并引发异常: 有什么帮助吗? 问题答案: 确保res文件夹在类路径中,使用项目属性> Java构建路径>源选项卡进行验证。如果不在类路径中,可以通过右侧的“ 添加文件夹..” 按钮 添加 。

  • 我知道还有其他几个问题。。。 类.getResource() 返回空值 Java - 类.get资源返回空值 调用 context.getResources() 返回 null getClassLoader().getResource(filepath) 返回一个空指针 但我的问题似乎有点不同,因为我似乎拥有所有必要的东西来避免这个问题。 代码: 问题是我已经通过检查调试器中的类加载器来验证我的类

  • 根据“show Runtime:fullclasspath”,运行时类路径只包含target/scala-2.11/classes和~/.ivy2/cache/org.scala-lang/scala-library/jars/scala-library-2.11.7.jar。编译:FullClasspath包含~/.ivy2/cache下的所有libraryDependencies jar位置。

  • 我们有一个项目,我们建立与Gradle。我们使用IntelliJ作为我们的开发环境。我们有一些资源想要保存在JAR之外,所以我们将它们放在src/dist-文件夹中。这在从命令行运行应用程序时工作得很好,但当我们想从IntelliJ调试时就不那么好了。我们可以向src/dist放一个运行时依赖项,但是我们最终会在生成的ZIP文件中使用lib-folder中的文件,而这不是我们想要的。 看起来这个问

  • 如果用注释对类进行注释,那么为了使用该类,该注释的定义必须在运行时类路径中吗?例如,给定注释 我能执行这个程序吗 类路径中没有component.class?(在我的测试中,我可以,但这个行为是由规范定义的吗?) 我这样问是因为有相互矛盾的说法,即使用库中的注释是否会创建对该库的依赖关系。