{"id":560,"date":"2009-02-18T14:43:42","date_gmt":"2009-02-18T19:43:42","guid":{"rendered":"http:\/\/jianmingli.com\/wp\/?p=560"},"modified":"2013-01-30T09:25:29","modified_gmt":"2013-01-30T14:25:29","slug":"java-property-files","status":"publish","type":"post","link":"https:\/\/jianmingli.com\/wp\/?p=560","title":{"rendered":"Java Property files"},"content":{"rendered":"<span id=\"Load_Properties_From_File\"><h3>Load Properties From File<\/h3><\/span>\n<pre lang=\"java\">\r\nprops = new Properties();\r\nString myFile = \"myFile\";\r\nprops.load(new BufferedInputStream(new FileInputStream(myFile)));\r\n<\/pre>\n<pre lang=\"java\">\r\n  final static String propFile = \"my.properties\";\r\n  \r\n  private static void loadPropertiesFromFile() \r\n          throws RuntimeException {\r\n      prop = new Properties();\r\n      try {\r\n          prop.load(new BufferedInputStream(\r\n          new FileInputStream(propFile)));\r\n      } catch (FileNotFoundException ex) {\r\n          logger.log(Level.SEVERE, null, ex);\r\n          throw new RuntimeException(ex);\r\n      } catch (IOException ex) {\r\n          logger.log(Level.SEVERE, null, ex);\r\n          throw new RuntimeException(ex);\r\n      }\r\n  }\r\n<\/pre>\n<span id=\"Load_Properties_From_Classpath_e.g._jar_file\"><h3>Load Properties From Classpath (e.g. jar file)<\/h3><\/span>\n<pre lang=\"java\">\r\nprivate Properties loadProperties() {\r\n  InputStream is = this.getClass().getClassLoader()\r\n    .getResourceAsStream(\"my.properties\");\r\n  Properties prop = new Properties();\r\n  if (is != null){\r\n    try{\r\n      prop.load(is);\r\n    }catch(IOException ioe){\r\n      log.error(ioe);\r\n    }\r\n  }else{\r\n    log.error(\"my.properties not found!\");\r\n    System.exit(1);\r\n  }\r\n  return prop;\r\n}\r\n<\/pre>\n<pre lang=\"java\">\r\n  final static String propFile = \"my.properties\";\r\n\r\n  public static void loadPropertiesFromClaspath()\r\n          throws RuntimeException {\r\n      prop = new Properties();\r\n      InputStream is = KrbProperties.class.getResourceAsStream(\r\n              propFile);\r\n      if (is == null){\r\n          throw new Exception(\r\n                  \"Property file not found: \" \r\n                  + propFile);\r\n      }\r\n      \r\n      try {\r\n          prop.load(is);\r\n      } catch (IOException ex) {\r\n          logger.log(Level.SEVERE, null, ex);\r\n          throw new Exception(ex);\r\n      }\r\n  }\r\n<\/pre>\n<span id=\"Struts_MessageResources\"><h3>Struts MessageResources<\/h3><\/span>\n<pre lang=\"java\">MessagResources\r\nMessagResources  rs = (MessageResources)getServlet()\r\n .getServletContext().getAttribute(Action.MessageKey+appPrefix);\r\nString text = rs.getMessage(\"key\");<\/pre>\n<span id=\"System_Properties\"><h3>System Properties<\/h3><\/span>\n<p>* Access system properties<\/p>\n<pre lang=\"java\">\r\nSystem.getProperty(\"path.separator\");\r\nSystem.getProperties();\r\n<\/pre>\n<p>* System properties:<br \/>\nfile.separator:    Character that separates components of a file path. This is \/ on UNIX and \\ on Windows.<br \/>\njava.class.path: Path used to find directories and JAR archives containing class files. Elements of the class path are separated by a platform-specific character specified in the path.separator property.<br \/>\njava.home:   Installation directory for Java Runtime Environment (JRE)<br \/>\njava.vendor:   JRE vendor name<br \/>\njava.vendor.url:   JRE vendor URL<br \/>\njava.version:  JRE version number<br \/>\nline.separator:  Sequence used by operating system to separate lines in text files<br \/>\nos.arch:   Operating system architecture<br \/>\nos.name:   Operating system name<br \/>\nos.version:  Operating system version<br \/>\npath.separator:  Path separator character used in java.class.path<br \/>\nuser.dir:  User working directory<br \/>\nuser.home:   User home directory<br \/>\nuser.name:   User account name<\/p>\n<span id=\"Replace_System_Properties_for_Debugging\"><h3>Replace System Properties for Debugging<\/h3><\/span>\n<pre lang=\"java\">\r\n  public static void replaceSystemProperties(){\r\n      logger.warning(\"Replacing system properties implementation...\");\r\n      Properties p = System.getProperties();\r\n      if (p != null && p instanceof SysProperties){\r\n          logger.info(\"Already using \" + SysProperties.class.getName());\r\n      }\r\n\r\n      SysProperties sp = new SysProperties(System.getProperties());\r\n      System.setProperties(sp);\r\n          logger.info(\"Replaced system properties with \" \r\n                  + SysProperties.class.getName());\r\n  }\r\n<\/pre>\n<pre lang=\"java\">public class SysProperties extends Properties {\r\n    static final Logger logger = Logger.getLogger(\r\n            SysProperties.class.getName());\r\n\r\n    public SysProperties(Properties defaults) {\r\n        super(defaults);\r\n    }\r\n\r\n    @Override\r\n    public synchronized Object setProperty(String key, String value) {\r\n        logger.log(Level.WARNING, \r\n                \"Setting system property {0} with value {1}\", \r\n                new String[]{key, value});\r\n        return super.setProperty(key, value);\r\n    }   \r\n}\r\n<\/pre>\n<p>References<br \/>\n<a href=\"http:\/\/www.javaworld.com\/javaworld\/javaqa\/2003-08\/01-qa-0808-property.html\">Smartly load your properties<\/a><br \/>\n<a href=\"http:\/\/www.javaworld.com\/javaworld\/javaqa\/2002-11\/02-qa-1122-resources.html\">Got resources?<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Load Properties From File props = new Properties(); String myFile = &#8220;myFile&#8221;; props.load(new BufferedInputStream(new FileInputStream(myFile))); final static String propFile = &#8220;my.properties&#8221;; private static void loadPropertiesFromFile() throws RuntimeException { prop = new Properties(); try { prop.load(new BufferedInputStream( new FileInputStream(propFile))); } catch &hellip; <a href=\"https:\/\/jianmingli.com\/wp\/?p=560\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[14],"tags":[559,336,335],"class_list":["post-560","post","type-post","status-publish","format-standard","hentry","category-java","tag-java","tag-loading","tag-properties"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8cRUO-92","_links":{"self":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/560","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=560"}],"version-history":[{"count":10,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/560\/revisions"}],"predecessor-version":[{"id":565,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/560\/revisions\/565"}],"wp:attachment":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=560"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=560"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=560"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}