谨以此文,纪念为了搞清楚eclipse项目路径问题而牺牲的几个小时。
在项目到最后准备部署时,需要将其打包成jar,(用fat-jar来整,方便), 在eclipse中的目录结构是:
PathDemo
src
|-PropertiesReader.java
config
|-config.Properties
在PropertiesReader.java中读取的代码是:(代码1)
FileInputStream fis = new FileInputStream("config/config.properties");
p.load(fis);
此时使用的是相对路径, 相对与哪个呢? 当然是项目的根目录(而不是src目录), 如果PathDemo这个项目的路径是E:\workspace\PathDemo, 则以上配置文件的路径就是相对于这个路径的。要获取项目的根目录,可以用System.getProperty("user.dir"),在eclipse里打印出来的就是项目的根目录,但是打包成jar后,这个语句获取的结果就不同了。
如果所使用的配置文件不在项目目录下,则在run的时候将该文件的路径加入到classpath中,运行的时候的也可以找到该文件。这种方式, 可以将配置文件放在任意目录, 这个时候就不能用上面的代码来找文件了,而是需要用:(代码2)
InputStream fis = PropertyFileReader.class.getClassLoader().getResourceAsStream("config.properties");
打包成jar后,需要把配置文件单独弄出来,放到和jar同目录下的config文件夹下,以提高配置的灵活性,我以为这个时候再用代码1中的方法去查找文件肯定找不到了,于是我到处找方法,找啊找啊找啊,很多人说先把代码改成代码2的方式, 我改! 然后执行时用java -cp config/config.Properties -jar PathDemo.jar, 不行, 显示找不到. 无解之后最后还是把代码改回代码1的方式一试, 竟然可以!! 原来代码被打成jar包后, 在用相对路径找文件时和在eclipse中运行是不一样的, 此时相对于的是jar包所在的目录, 所以用代码1的方式, 同时将配置文件放在和jar同目录下的config文件夹下, 仍然可以找到该文件. 运行jar包时,如果代码里有System.getProperty("user.dir"), 则此时得到的路径就是jar包所在的目录.
菜菜的总结, 不对的地方, 希望您看到后斧正!
分享到:
相关推荐
### IDEA打包Eclipse项目的详细步骤及注意事项 #### 一、前言 随着开发工具的多样化,开发者们常常需要在不同的IDE之间迁移项目。比如从Eclipse迁移到IntelliJ IDEA,这种情况下,如何利用IntelliJ IDEA来正确打包...
### Eclipse项目的打包发行方法 #### 一、Java应用项目的打包发行 在Eclipse环境中完成一个Java应用程序后,对其进行打包发行是非常重要的一步。打包的过程不仅包括将项目中的所有类文件和其他资源压缩成一个易于...
### Eclipse 项目打包成可执行JAR文件详解 在Java开发过程中,经常需要将开发完成的应用程序打包成可执行的JAR文件以便于部署和分发。本文将详细介绍如何使用Eclipse IDE将Java项目打包成可执行的JAR文件。 #### ...
### Eclipse项目打包与发行:深度解析与实操指南 在软件开发领域,项目的打包与发行是将源代码转化为可执行程序或库的关键步骤。对于使用Eclipse IDE进行开发的项目而言,这一过程同样至关重要,它确保了应用程序...
标题中的“eclipse快速打开项目路径”指的是在Eclipse中便捷地访问和管理项目的文件系统路径。在日常开发过程中,频繁地在Eclipse与文件系统之间切换会消耗不少时间,而正确配置Eclipse可以有效解决这个问题。 首先...
总结来说,通过Eclipse集成Gradle,开发者可以利用Gradle的强大功能进行Android项目的构建和打包,包括批量生成不同版本的APK。同时,配合像RoBoGuice这样的第三方库,可以提高项目的可维护性和开发效率。在实际操作...
以下是Eclipse RCP软件的打包和发布流程,详细解释了如何创建产品配置、集成JRE、添加闪屏等关键步骤。 1. **新建“产品配置”**:在Eclipse中,你需要通过"File" -> "New" -> "Other" -> "Plug-in Development" ->...
eclipse工作空间的路径修改是指在Eclipse中更改工作空间的路径,以便更好地管理项目。在Eclipse中,工作空间是指一个项目的根目录,所有项目文件都存储在这个目录下。通过修改工作空间的路径,可以将不同类型的项目...
下面是使用fatjar插件将Eclipse项目打包成JAR文件的步骤: 1. **安装fatjar插件**:首先,你需要确保Eclipse已经安装了fatjar插件。如果尚未安装,可以通过Eclipse的“帮助” > “Eclipse Marketplace”搜索fatjar...
【标题】"eclipse打包.zip" 是一个包含Eclipse集成开发环境(IDE)的压缩文件,主要用于Java和Java Web项目的开发。这个安装包设计简洁,适用于初学者和有经验的开发者,提供了快速安装Eclipse的步骤。 【描述】中...
使用 Eclipse IDE 可以简便地将 Java 项目打包成 WAR 文件。首先,右键点击要打包的项目,选择“导出...”,然后在弹出的对话框中选择“WAR 文件”。Eclipse 将自动将项目打包成 WAR 文件。 WAR 文件的目录结构 ...
针对这部分用户,本知识点将介绍如何在Eclipse中使用Gradle进行Android项目的打包。 首先,要使得Eclipse能够使用Gradle进行构建,需要对Gradle本身进行安装和配置。 Gradle安装过程如下: 1. 访问Gradle官网下载...
本篇将基于提供的文件标题、描述及部分内容,深入探讨如何在Eclipse环境下将AWT或SWT项目打包成JAR文件,并通过批处理(bat)文件来运行这一过程。 ### Eclipse AWT/ SWT项目打包成JAR #### 1. 准备阶段:构建...
然而,Eclipse IDE在默认情况下,对于包含第三方库的项目打包时可能会遇到问题,因为它并不自动将这些依赖的库文件包含进生成的JAR中。针对这一问题,我们可以采用一种称为"fat jar"的打包方式来解决。 "Fat jar"...
在Eclipse中,"项目打包"通常指的是将一个或多个工程打包成可部署的形式,例如JAR文件、WAR文件或者可执行的JAR。在这个场景中,"jat"可能是指一个特定的插件,用于辅助Eclipse进行项目的打包工作。 "jat"插件可能...
其中,Eclipse 的 jar 打包功能是开发者常用的一个功能,它允许开发者将项目中的类文件和资源文件打包成一个 jar 文件,以便于在其他项目中使用或部署到生产环境中。 在本文中,我们将详细介绍如何使用 Eclipse 将...
### Eclipse 中 JAVA 项目的打包为 exe 的方法 在软件开发过程中,经常需要将 Java 项目打包成可执行的 exe 文件,以便于用户在没有安装 Java 运行环境的情况下也能运行程序。本文主要介绍如何在 Eclipse 环境下将 ...
【Eclipse插件-Android项目APK渠道号批量打包工具兰贝】 在Android应用开发过程中,经常需要为不同的分发渠道创建带有特定渠道标识的APK文件,以便追踪每个渠道的下载和用户行为数据。传统的做法是手动修改...