Welcome 微信登录

首页 / 操作系统 / Linux / 怎样利用Java虚拟Unix/Linux的文件路径

大部分的java程序应用于Unix/Linux系统,而绝大部分的开发是在Windows下。虽然,java可以运行在anywhere, 但毕竟还有很多环境配置问题。 例如在UNIX下,你需要将某些配置文件的路径写入到另一个配置文件。 也许有很多局限,使你必须写入绝对路径。 在config.propertIEs里写入 logs = /logs/app/db/logs.properties configs=/usr/WebSphere/AppServer/installedApps/appname/earname/warname/WEB-INF/properties/myconfig.properties 在开发阶段,你是否愿意在你的Windows开发机上建立上面这样的目录,或者逐个修改这个路径呢? 尤其在已有的系统下,为了开发新的功能,构筑开发环境时,这种配置文件路径的修改是相当花时间的。 并且,在Release时,你必须要使用Ant工具批量修改这些配置文件。 但我可以说,大部分项目只有给生产和系统集成测试环境才会配置Ant工具。而在低级别的测试环境下,你只能手动更改。 那么如何才能不修改任何文件可以再Windows本地调试并运行呢?我给出一个小小方案。
1. 重写java.io.File类
先不要向我丢香蕉皮, 重写java.io.File并不一定要变动rt.jar文件。 jvm支持pretend,也就是伪装,我可以把我重写的java.io.File在运行期时代替rt.jar原有的java.io.File类。 想了解更详细的信息可以在 JAVA_HOME里找这个文件:[ JAVA_HOME]inclientXusage.txt
-Xbootclasspath/p: prepend in front of bootstrap class path
在调试时,我就是要用这个参数。假设,我把重写的java.io.File类文件打包为filemap_1_4.jar。调试时,我就可以运行 java -Xbootclasspath/p:MyProjectFileMap/filemap_1_4.jar -cp ...
这样,在我调用的所有类里,涉及到文件或文件系统功能时,都调用D:MyProjectFileMap/filemap_1_4.jar 下面的java.io.File而不是rt.jar.
2. 功能实现
2.1 文件目录映射关系 为了增加一些灵活性, 我使用一个目录映射文件,来定义UNIX/LINUX文件路径和Windows文件路径的映射关系。
例如,filemap.properties /usr/WebSphere/AppServer/installedApps/appname/earname/warname/=C:/MyProject/ /logs/app/db/=c:/MyProject/logs
当程序要读取/usr/WebSphere/AppServer/installedApps/appname/earname/warname/WEB-INF/properties/myconfig.properties
文件时,java.io.File会映射到C:/MyProject/WEB-INF/properties/myconfig.properties。
  • 1
  • 2
  • 3
  • 4
  • 下一页
Linux库文件的搜索路径在Linux/UNIX上分析程序日志的技巧相关资讯      Java 
  • Java比较C#胜在何处  (11/30/2015 20:21:52)
  • 越来越“简单”的Java  (07/08/2015 07:23:10)
  • Java,传奇的一生!  (04/22/2015 21:32:27)
  • 如果Java失宠于Oracle,那么未来会  (11/21/2015 20:14:48)
  • Java:持续革新的 20 年  (05/21/2015 08:03:16)
  • Linux平台下Java程序员的基本功  (07/09/2013 10:41:16)
本文评论 查看全部评论 (0)
表情: 姓名: 字数