加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

有没有办法在Windows下使用java.util.Preferences,而不使用注册

发布时间:2020-12-13 20:16:13 所属栏目:Windows 来源:网络整理
导读:我想使用 java.util.Preferences API,但我不希望我的程序尝试读取或写入 Windows注册表.我该怎么办? 我相信你已经阅读了 read/write to Windows Registry using Java,然后在使用java.util.Preferences API时想要比注册表另一个后端 您可以扩展 Preference A
我想使用 java.util.Preferences API,但我不希望我的程序尝试读取或写入 Windows注册表.我该怎么办?
我相信你已经阅读了 read/write to Windows Registry using Java,然后在使用java.util.Preferences API时想要比注册表另一个后端

您可以扩展Preference API,如Bernhard或Croft,如this article所述:

Because the 07005 is back-end neutral,you need not care whether the data are stored in files,database tables,or a platform-specific storage such as the Windows Registry.

new Preferences can be seen here扩展示例.

那比IMO更好,而不是使用另一个API.

例如,搜索延伸java.util.prefs.AbstractPreferences的类:

>您可以使用由XML文件支持的首选商店:

de.unika.ipd.grgen.util.MyPreferences

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.prefs.AbstractPreferences;
import java.util.prefs.BackingStoreException;

/**
 * Own implementation of the Java preferences API,that does not use
 * a "OS backing store" but relies on importing and exporting the
 * preferences via xml files.
 * Also,If a preference is got,but was not in the tree,it is entered.
 */
public class MyPreferences extends AbstractPreferences {

    private Map<String,String> prefs = new HashMap<String,String>();
    private Map<String,AbstractPreferences> children = new HashMap<String,AbstractPreferences>();

  public MyPreferences(MyPreferences parent,String name) {
    super(parent,name);
  }

  /**
   * @see java.util.prefs.AbstractPreferences#putSpi(java.lang.String,java.lang.String)
   */
  protected void putSpi(String key,String value) {
    prefs.put(key,value);
  }

>或者您可以将这些首选项存储在LDAP中:

de.tarent.ldap.prefs.LDAPSystemPreferences

import java.util.prefs.AbstractPreferences;
import java.util.prefs.BackingStoreException;

import javax.naming.NamingException;
import javax.naming.directory.Attributes;

import de.tarent.ldap.LDAPException;
import de.tarent.ldap.LDAPManager;

/**
 * @author kirchner
 * 
 * Preferences im LDAP
 */
public class LDAPSystemPreferences extends AbstractPreferences {
    LDAPManager     ldm         = null;
    Properties      properties  = new Properties();
    //Map für key/value der Preferences
    Map             cache       = new HashMap();
    //Map für timestamp der Preferences
    Map             timestamp   = new HashMap();
    private Boolean deleted     = Boolean.FALSE;

>或者你可以使用一个简单的属性文件:

com.adito.boot.PropertyPreferences:

import java.util.prefs.AbstractPreferences;
import java.util.prefs.BackingStoreException;
import java.util.prefs.Preferences;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;


/**
 * A simple implementation for the preferences API. That stores preferences
 * in propery files. We do not have to worry about sharing the preferencese 
 * with other JVM instance so there is no need for any kind of synchronising
 * or locking.
 */
public class PropertyPreferences extends AbstractPreferences {

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读