有没有办法在Windows下使用java.util.Preferences,而不使用注册表作为后端?

前端之家收集整理的这篇文章主要介绍了有没有办法在Windows下使用java.util.Preferences,而不使用注册表作为后端?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想使用 java.util.Preferences API,但我不希望我的程序尝试读取或写入 Windows注册表.我该怎么办?
我相信你已经阅读了 read/write to Windows Registry using Java,然后在使用java.util.Preferences API时想要比注册表另一个后端

您可以扩展Preference API,如BernhardCroft,如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 {
原文链接:https://www.f2er.com/windows/371291.html

猜你在找的Windows相关文章