在我的項目中,我有一個屬性文件,用於設置日誌級別。現在,當我將項目導出爲jar並使用它在遠程計算機(linux)上運行項目時,我無法設置關卡。有沒有辦法將屬性文件保存在jar文件之外,以便我可以設置關卡並使jar讀取該屬性文件。 (首選使用環境變量)java.util.logger.Logging:在jar文件之外保留logger.properties文件
0
A
回答
0
有幾種方式來實現這一點,例如:
- 配置您的IDE出口資源的JAR外:我通常不考慮,因爲具體該選項解決方案取決於由開發者的IDE
- 使用通用構建工具,例如螞蟻,並在
build.xml
文件,該文件的屬性文件應封裝罐 - INTE外指定與Maven的篦項目和自定義,以複製一些特定的屬性文件以外的罐子
從你的問題我猜你是出口從IDE的JAR包的目標,但我解決上述依賴由IDE。出於這個原因,爲了採用獨立於IDE的解決方案,我建議使用Ant。這可以讓你解決這個問題以及將來可能出現的許多類似問題。
您可以獲得Ant here:只需下載並將其解包到任何文件夾中,需要幾分鐘的時間。然後在PATH變量中添加一個對Ant bin
目錄的引用(並非嚴格必要,但建議),並創建一個示例build.xml
文件。這是一個模板,例如:
<project name="template" default="compile" basedir=".">
<description>Build file template</description>
<property name="project.name" value="myProject"/>
<property name="driver.log" value="log4j-1.2.15.jar"/>
<property name="driver.database" value="ojdbc6.jar"/>
<property name="library.home" value="lib"/>
<property name="env.type" value="dev"/>
<property name="src.version" value="Demo" />
<property name="src.folder" value="root/folder/template"/>
<property name="src.package" value="root.folder.template"/>
<property name="src.home" value="${basedir}/src/${src.folder}"/>
<property name="dist.home" value="${basedir}/dist"/>
<property name="build.home" value="${basedir}/build"/>
<property name="docs.home" value="${basedir}/docs"/>
<!-- Setting the classpath necessary to compile -->
<path id="compile.classpath">
<pathelement location="${library.home}/${driver.log}"/>
<pathelement location="${library.home}/${driver.database}"/>
</path>
<!-- DELETE the class files from the ${build.home} directory tree -->
<target name="clean" description="Clean up the build folder">
<delete dir="${build.home}"/>
<delete dir="${dist.home}"/>
</target>
<!-- CREATE the build directory structure used by compile -->
<target name="init" description="Creates the necessary directories">
<mkdir dir="${dist.home}"/>
<mkdir dir="${build.home}"/>
</target>
<!-- COMPILE the project and copy all necessary resources -->
<!-- Options: <compilerarg value="-Xlint"/> -->
<target name="compile" depends="init" description="Compile the sources">
<javac srcdir="${src.home}" destdir="${build.home}" includeantruntime="false">
<classpath refid="compile.classpath"/>
</javac>
<copy todir="${build.home}/${src.folder}/resources">
<fileset dir="${src.home}/resources">
<include name="messages_list.properties"/>
<include name="messages_list_en.properties"/>
</fileset>
</copy>
<copy file="${src.home}/resources/log4j_${env.type}.properties" tofile="${build.home}/${src.folder}/resources/log4j_${project.name}.properties"/>
<copy file="${src.home}/resources/configuration_${env.type}.properties" tofile="${build.home}/${src.folder}/resources/${project.name}_config.properties"/>
</target>
<!-- Creates the DISTRIBUTABLE JAR package and add 3d part libraries -->
<target name="dist" description="Create the distributable JAR archive">
<jar destfile="${dist.home}/${project.name}.jar">
<fileset dir="${build.home}">
<exclude name="place_holder\"/>
</fileset>
<!-- Setting MANIFEST properties -->
<manifest>
<section name="${ant.project.name} - ver. ${src.version}">
<attribute name="Built_By" value="${user.name}"/>
<attribute name="Created" value="${ts}"/>
</section>
<attribute name="Main-Class" value="package.mine.MainClass"/>
<attribute name="Class-Path" value=". lib/${driver.log} lib/${driver.database}"/>
</manifest>
</jar>
<!-- Adding third part libraries -->
<mkdir dir="${dist.home}/lib"/>
<copy file="${library.home}/${driver.database}" todir="${dist.home}/lib"/>
<copy file="${library.home}/${driver.log}" todir="${dist.home}/lib"/>
</target>
<tstamp><format property="ts" pattern="dd/MM/yyyy HH:mm:ss" /></tstamp>
</project>
備註:在你上面的模板應更換樣品罐(log4j的和OJDBC驅動程序)與您的項目所需的實際罐。然後,您可以自定義副本任務,以便將屬性文件放置在所需的位置。您可以將這些文件複製到您喜歡的任何目錄中,只要此類路徑出現在應用程序的類路徑中即可。
相關問題
- 1. 在jar文件之外的ResourceBundles
- 2. 在.jar之外訪問屬性文件?
- 3. 包含清單的jar文件之外的jar文件問題
- 4. 是否有可能將.gitignore文件保留在SVN之外?
- 5. 如何將Resharper文件保留在SVN之外?
- 6. 配置文件位於JAR中。如何將配置文件放在JAR之外?
- 7. 如何將文本文件從jar複製到jar之外的文件中?
- 8. 如何在JAR之外但相對於JAR加載文件?
- 9. 閱讀JAR文件之外的屬性文件
- 10. 可以getResourceAsStream()查找jar文件之外的文件嗎?
- 11. NoClassDefFounderError外部jar文件
- 12. JAR文件外的Java IO
- 13. GWT + Eclipse +外部JAR文件
- 14. 導入外部jar文件
- 15. 不想保留在同一個文件夾中的jar文件以外的圖像
- 16. 如何使用外部java jar文件創建jar文件
- 17. 從cmd中引用外部jar文件運行jar文件
- 18. jar文件裏面的一個類讀取jar外的文件
- 19. 創建jar文件時外部jar文件無法工作
- 20. 在Maven Jar文件中包含除WEB-INF/classes之外的其他文件夾?
- 21. 插件和外部jar文件之間的區別
- 22. logrotate保留舊文件名
- 23. django不保留文件名
- 24. 卸載後保留文件
- 25. 保留文件名Ghostscript
- 26. File.copyTo保留舊文件名
- 27. 文件保留腳本
- 28. Rmarkdown保留.tex文件
- 29. 在jar外部讀取配置文件
- 30. 在Eclipse中添加外部.jar文件