如何分别获取到用户PATH和系统PATH?

daimojingdeyu 2010-05-31 11:58:08
通过“我的电脑--右键--属性--高级--环境变量”可以在对话框中显示用户变量和系统变量两部分内容。
在java代码中可以有通过
System.getenv("path")

获取PATH变量的值,但是获取到的值是当前用户的用户变量中的PATH和系统变量中的PATH的合集。
如何才能分开获取这两个PATH?
...全文
395 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
氧气网航 2010-06-02
  • 打赏
  • 举报
回复
学习了。但找不到啊哦
i李小武 2010-06-02
  • 打赏
  • 举报
回复
下面代码是我找的 不知道有用否?


在我们写程序的时候,有时会要求保存一些数据,比如用户名或者别的,但是这样数据又不是保存在程序同一目录下,这样做太明显了,也不太安全,那怎么办呢?这个时候,如果能把数据保存到注册表里面去,那该多好,一来隐蔽,二来方便,不至于在程序目录下生成一大片文件.
在JAVA里面,可以利用java.util.prefs.Preferences来对注册表进行操作,我们先看一下例子吧



/*
* Test3.java
*
* Created on 2007-9-20, 18:41:41
*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package test1;

import java.util.prefs.Preferences;

/**
*
* @author hadeslee
*/
public class Test3 {

public static void main(String[] args)throws Exception {
Preferences pre=Preferences.systemNodeForPackage(Test3.class);
pre.put("userName", "hadeslee");
pre.putInt("age", 25);
pre.flush();
Preferences now=Preferences.systemNodeForPackage(Test3.class);
System.out.println(now.get("userName", "为空"));
System.out.println(now.getInt("age", 0));

}
}
这是一个最简单的例子,第一句就是根据包得到一个节点,然后把一些值放进去,可以放String,boolean,int,long,float,double等值 ,如果你想存入对象的话,可以把对象序列化成byte[],然后再存进来,然后读也是一样的,我们这样操作就像是在操作一个Map一个,所有的值都是存在这个映射里面.

那么它们保存在哪里呢?

如果选的是systemNode...则保存在[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Prefs]

如果选的是userNode.... 则保存在[HKEY_CURRENT_USER\Software\JavaSoft\Prefs]
的子节点下面


不过话又说回来,如果我们想程序跨平台的话,这样是不太好的,我在linux上试过,每次程序退出,我设定的值都没有了,因为linux下面没有像windows一样的注册表,不知道linux下SUN是怎么实现的,为了可移植性,最好还是用java.uitl.Properties这个类,根据一个文本映射文件来进行值的操作,不过它也有不好的地方,它只能存入String对象,像byte[]就存不了了,如果要存的东西太复杂的话,干脆直接用数据库吧.:)
m33707 2010-06-02
  • 打赏
  • 举报
回复
学习...........
  • 打赏
  • 举报
回复
做不到,除非你自己去读取注册表中相关的键。
SARA621 2010-06-01
  • 打赏
  • 举报
回复
继续顶
SARA621 2010-06-01
  • 打赏
  • 举报
回复
楼上的,详细介绍一下
SARA621 2010-06-01
  • 打赏
  • 举报
回复
诚迈科技公司已吸引了一批世界级公司的关注
  • 打赏
  • 举报
回复
不懂,期待大虾解决
kuruby 2010-06-01
  • 打赏
  • 举报
回复
学习下。
daimojingdeyu 2010-06-01
  • 打赏
  • 举报
回复
somebody? anybody?
daimojingdeyu 2010-06-01
  • 打赏
  • 举报
回复
感谢火龙果。
另我再等一个小时,看还有没有其他人有不读注册表的方法。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧