仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1694|回复: 19
打印 上一主题 下一主题

[学习教程] JAVA教程之在Java中猎取体系属性

[复制链接]
兰色精灵 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:54:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
比如模式、敏捷方法什么的,这些思想好,但是实施的人没有理解而且没有正确运用这些知识导致了开发周期的延长。比如说对象,通过getName()方法不能获取对象的名字。在Java中猎取体系属性

年夜庆油田无限义务公司苏洋
01-5-22上午11:12:51

--------------------------------------------------------------------------------


Java言语以其面向对象、跨平台、可移植性好、平安性初等长处,遭到浩瀚编程职员的喜爱,愈来愈多的人将其作为使用软件开辟言语的首选。
在Java使用程序运转时,出格是必要在跨平台事情情况下运转时,必要断定操纵体系范例、用户JDK版本和用户事情目次等随事情平台变更的信息,来包管程序准确运转。一样平常情形下,能够使用JDK供应的体系属性类(Properties)中的办法,疾速地猎取事情情况信息。别的,程序开辟职员还能够界说与使用程序相干的体系属性文件,在用户程序实行过程当中静态地加载程序员界说的属性文件来把持程序运转。
本文经由过程对体系属性类的剖析,分离实践例子先容怎样界说体系属性文件,并会商平安战略文件的界说。
属性类
JavaProperties类的承继干系以下:
java.lang.Object
+--java.util.Dictionary
+--java.util.Hashtable
+--java.util.Properties
在使用程序入手下手实行时,程序起首读取体系的默许属性。假如界说了用户属性文件,则使用程序加载该属性文件。程序运转过程当中能够依据实行情形静态地修正属性界说,并在程序停止运转前,保留属性文件。
猎取属性的办法:
●contains(Objectvalue)、containsKey(Objectkey):假如给定的参数或属性关头字在属性表中有界说,该办法前往True,不然前往False;
●getProperty(Stringkey)、getProperty(Stringkey,Stringdefault):依据给定的属性关头字猎取关头字值;
●list(PrintStreams)、list(PrintWriterw):在输入流中输入属性表内容;
●size():前往以后属性表中界说的属性关头字个数。
设置属性的办法:
●put(Objectkey,Objectvalue):向属性表中追加属性关头字和关头字的值;
●remove(Objectkey):附属性表中删除关头字。
猎取体系属性
体系属性是指与用户程序相干的操纵体系设置信息和软件信息。一般与用户程序相干的属性关头字包含:
●file.separator:文件分开符,Windows情况下为“",Unix情况下为“/”;
●user.home:用户主目次;
●java.home:Java及时运转情况的安装目次;
●java.ext.dirs:JDK的安装目次;
●os.name:操纵体系称号;
●user.name:用户登录称号;
●os.version:操纵体系版本;
●path.separator:以后操纵体系的路径分开符;
●user.dir:以后用户程序地点目次。
上面分离例子申明猎取体系属性的办法。
/*getSystemProperties.java*/
importjava.util.Properties;
publicclassgetSystemProperties
{
publicstaticvoidmain(Stringargs[])
{
//经由过程取得体系属性机关属性类prop
Propertiesprop=newProperties(
System.getProperties());
//在尺度输入中输入体系属性的内容
prop.list(System.out);
}
//依据猎取的体系属性断定程序实行流程
……
}
上述程序实行后,在Windows情况中发生相似以下的输入:
user.home=C:WIN95
java.home=D:JDK1.2JRE
java.ext.dirs=D:JDK1.2
os.name=Windows95
user.name=Office
java.vm.name=ClassicVM
os.version=4.10
path.separator=;
file.separator=
user.dir=D:JavaTest
属性文件的操纵办法
Java程序开辟职员能够经由过程界说属性文件来设置程序运转的参数。属性文件是程序内部文件,在使用程序初始运转时,能够经由过程读取属性文件来猎取有关程序运转的参数。比方,在程序运转时必要在程序内部把持程序的实行流程,这时候能够经由过程界说属性文件的办法到达目标。上面分离例子申明属性文件的操纵办法:
/*PropertyFile.java*/
//引进相干类
importjava.io.*;
importjava.util.Properties;
publicclassPropertyFile
{
//界说文件输出和输入流
staticFileInputStreamfis;
staticFileOutputStreamfos;
publicstaticvoidmain(Stringargs[])
{
//天生新的属性对象
Propertiesprop=newProperties();
try
{
//天生文件输出和输入流,输出流指向用户已界说的属性文件,输入流指向由使用程序新界说的属性文件
fis=newFileInputStream
(“firstProp.txt”);
fos=newFileOutputStream
(“secondProp.txt”);
}
catch(FileNotFoundExceptione)
{
System.out.println(“Cannotcreatethefilestream”);
}
try
{
//从输出文件加载体系属性
prop.load(fis);
//依据程序实行情形变动属性关头字的值
prop.put(“Switch”,“1”);
//输入新属性文件secondProp.txt
prop.save(fos,“--anewpropertiesfile-”);
}
catch(IOExceptione)
{
System.out.println(“Exceptioninrepleacethekeyword”);
}
}
}
在程序实行之前,用户必需起首界说属性文件firstProp.txt,该文件内容以下:
Switch=0
Version=1.0
Directory=JavaTest
程序运转后,输入新的属性文件secondProp.txt,该文件内容以下(注重察看两个文件关头字Switch内容的区分):
#--anewpropertiesfile--
#SunMar1121:22:40CST2001
Switch=1
Version=1.0
Directory=JavaTest
从上例能够看出,经由过程JDK供应的属性类Properties能够便利地在程序内部对使用程序的实行流程举行把持,从而简化了编程难度,使程序流程可控性更好。
平安战略文件
Java供应的使用程序情况的平安战略,使得分歧的代码对体系资本具有分歧的会见允许。Java使用程序平安战略由Policy对象来表达,经由过程界说平安战略文件来完成。Java1.2的平安战略文件分为三级:体系平安战略文件、用户平安战略文件和缺省平安战略文件。当Java使用程序启动后,依照前后按次加载平安战略内容。上面分离典范的平安战略文件内容对平安战略文件的界说举行申明:
grant
{
//对体系和用户目次设置“读”的权限
permissionjava.util.PropertyPermission“user.dir”,
“read”;
permissionjava.util.PropertyPermission“user.home”,“read”;
permissionjava.util.PropertyPermission“java.home”,“read”;
permissionjava.util.PropertyPermission“java.class.
path”,“read”;
permissionjava.util.PropertyPermission“user.name”,“read”;
//其他平安战略内容
};
上述平安战略文件界说了使用程序对用户目次、用户登录目次、JDK安装目次、用户称号等体系内容具有读的权限。

(网页编纂:徐朝阳)



先谈谈我对java的一些认识。我选择java,是因为他语法简单,功能强大,从web,到桌面,到嵌入式,无所不能。但当我进一步了解了java后,感叹,java原来也有许多缺点。
分手快乐 该用户已被删除
沙发
发表于 2015-1-21 16:58:19 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
只想知道 该用户已被删除
板凳
发表于 2015-1-30 21:24:52 | 只看该作者
是一种突破用户端机器环境和CPU
柔情似水 该用户已被删除
地板
发表于 2015-2-4 13:59:49 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
5#
发表于 2015-2-7 20:03:46 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
admin 该用户已被删除
6#
发表于 2015-2-13 06:38:55 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
活着的死人 该用户已被删除
7#
发表于 2015-3-3 16:38:51 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
飘灵儿 该用户已被删除
8#
发表于 2015-3-10 05:40:53 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
深爱那片海 该用户已被删除
9#
发表于 2015-3-11 18:07:58 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
愤怒的大鸟 该用户已被删除
10#
发表于 2015-3-11 22:46:26 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
灵魂腐蚀 该用户已被删除
11#
发表于 2015-3-13 01:33:39 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
冷月葬花魂 该用户已被删除
12#
发表于 2015-3-18 23:08:02 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
变相怪杰 该用户已被删除
13#
发表于 2015-3-22 00:08:04 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
因胸联盟 该用户已被删除
14#
发表于 2015-4-16 00:09:58 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
飘飘悠悠 该用户已被删除
15#
发表于 2015-4-22 00:14:57 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
小女巫 该用户已被删除
16#
发表于 2015-4-26 19:44:40 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
小妖女 该用户已被删除
17#
发表于 2015-6-19 19:27:29 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
山那边是海 该用户已被删除
18#
发表于 2015-6-23 20:20:09 | 只看该作者
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
若相依 该用户已被删除
19#
发表于 2015-6-23 20:34:50 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
再见西城 该用户已被删除
20#
发表于 2015-7-4 07:49:41 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-3 05:54

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表