首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问Windows注册表

访问Windows注册表
EN

Stack Overflow用户
提问于 2009-02-25 12:33:12
回答 3查看 5.9K关注 0票数 7

可能重复: 使用Java读写Windows注册表

我需要从Java访问Windows注册表。另外,我需要复制一些注册表项,并且可能需要使用Java输入新的注册表变量。有人来帮我..。

EN

回答 3

Stack Overflow用户

发布于 2009-02-25 12:41:05

我推荐Java本机访问(JNA)库。这是JNI的一个很好的包装。根据这个邮寄名单的帖子的说法,他们已经为本地Windows注册表函数调用提供了一个有贡献的包装器。

如果将JNA库添加到项目中,您需要的相关源是Registry.java类。从那里开始,只需调用该类上的方法来调查Windows注册表。

另外,请注意,当您使用JNA时,请确保您使用Platform.isXxx()来确保您的代码能够在特定平台上实际查询注册表。

票数 5
EN

Stack Overflow用户

发布于 2009-02-25 12:53:47

这样的例子如下:

代码语言:javascript
复制
import com.ice.jni.registry.*;

public class DeleteEnvironmentVar{
public DeleteEnvironmentVar(String variable, String value) throws Exception {

        RegistryKey machine = Registry.getTopLevelKey("HKEY_LOCAL_MACHINE");
        RegistryKey environment = machine.openSubKey("SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment", RegistryKey.ACCESS_WRITE);
        try {
            if ( value == null ) { //Delete the variable in case value is empty
                environment.deleteValue(variable);
            }            
        }
        catch( NoSuchValueException nsve ) {}
        catch( NoSuchKeyException nske ) {}        
    }
}
票数 2
EN

Stack Overflow用户

发布于 2009-02-25 13:28:12

首选项类是Java首选的写入注册表的方式。但是,我并没有实际使用它,所以我不知道它是否允许访问整个注册表,或者只允许访问JVM或应用程序的特定部分。如果没有,那么听起来就像为了您的目的,您需要查看这里的其他人提供的JNI解决方案。如果它确实工作,那么您有一个独立于平台的方法来存储您的设置,如果您曾经移植它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/585804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档