当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:14:00  来源:本站整理

JVM(Java虚拟机)中进程工作目录讲授[Java编程]

赞助商链接



  本文“JVM(Java虚拟机)中进程工作目录讲授[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

每次我们用Java号令运行我们的Java程序,城市在JVM中开启一个进程,关于每一个进程,城市有一个相对应的工作目录,这个工作目录在虚拟机初始化的时刻就已经设置好了,默许的情形下,工作目录是我们工程的根目录,比方:

/home/test/Project-

--bin

--divinemind.onlyfun.test.helloworld.java

--src

假定我们在用下面的号令启动helloworld,那么这个进程的根目录就是/home/test/Project/bin,helloworld里举行操作需求的资源,比方文件什么的,城市在这个目录举行查找.

Windows下,情形也是相同的.

我们可以通过

---------------------

System.getProperty(“user.dir”);

----------------------

获得当行进程的工作目录,并且当我们想改变这个工作目录的时刻,也可以通过

---------------------

System.setProperty(“user.dir”,”/home/test/xxxxxxx”);

---------------------

设置当行进程的工作目录,但是,事实上,user.dir这个系统环境是不可以重新设置的,问题很多,最常见的问题,当行进程下的全部线程都在利用这个环境变量,假如改正的话,危险不可思议,Sun的JDK这样做预计是一个小BUG.所以,System.setProperty这个办法只是让我们看看,实际上没有作用.在Sun的JDK1.4中,当行进程的工作目录是没有办法改正的,在JDK1.5中,ProcessBuilder在这方面有所改良.

当我们没有挑选需求利用非工作目录下的资源的时刻,比方:Java调用A, A利用B,B和A在同一个目录下,A和B不在当行进程的工作目录下,这样的话,程序必定运行会有问题,这个时刻有两个办法可以办理

1. 全部的途径都写绝对途径

全部的途径写绝对途径可以实现,但是程序在布置的时刻麻烦非常多,保护也艰难,但是办法简单,直观.

2. 在当行进程中新开一个子进程,改正子进程的工作目录

在Java中新开一个子进程的办法跟JDK版本有关:

A.JDK1.4中:

-------------------------

Process process = System.getRuntime.exec(arg1,arg2,arg3);

arg1:系统号令

arg2:号令运行的环境变量

arg3:子进程的工作目录,在这个地方便可以设置我们自己想要的工作目录,到达利用非父进程工作目下资源的办法.

-------------------------

B.JDK1.5中:

在这个版本中,我们可以利用ProcessBuilder来新开一个JVM进程.

下面的代码可以实现这里我们的功效:

-------------------------

ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2");

// myDir就是当行进程的工作目录,假如不设置,那就是默许为父进程的工作//目录

pb.directory("myDir");

Process p = pb.start();

-------------------------

Java在平常跟操作系统的关系确切很少,我们都很少碰到问题,但是假如我们调用操作系统号令什么的时刻,麻烦就多起来了,不过假如我们更多地理解JVM,问题就是对比简单办理了.


  以上是“JVM(Java虚拟机)中进程工作目录讲授[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • JVM(Java虚拟机)详解
  • 关于JVM号令行标志您不知道的5件事:调优JVM性能和Java运行时
  • 扩大Axis2框架,支持基于JVM的脚本语言
  • Java理论与实践: JVM 1.4.1中的垃圾堆积
  • JVM TI学习(1) 若何中止weblogic中stuck thread
  • JVM TI学习(2) 若何动态更新JVM中的class文件
  • JVM(Java虚拟机)中进程工作目录讲授
  • 关于JVM的垃圾堆积(一)
  • 关于JVM的垃圾堆积(二)
  • 关于JVM的垃圾堆积(三)
  • 摸索JVM上的LISP
  • 操纵JRuby生成JVM代码
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .