技术改变世界 阅读塑造人生! - shaogx.com

This string was altered by TechBlog\Plugins\Example.; This is an example to show the potential of an offcanvas layout pattern in Bootstrap. Try some responsive-range viewport sizes to see it in action.

Java中的文件路径获取

Java中的文件路径获取(此文为转贴)1.基本概念的理解绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:C:xyz est.txt 代表了test.txt文件的绝对路径。http://www.sun.com/index.htm也代表了一个URL绝对路径。相对路径:相对与某个基准目录的路径。包含Web的相对路径(HTML中的相对目录),例如:在Servlet中,"/"代表Web应用的跟目录。和物理路径的相对表示。例如:"./" 代表当前目录,"../"代表上级目录。这种类似的表示,也是属于相对路径。另外关于URI,URL,URN等内容,请参考RFC相关文档标准。RFC 2396: Uniform Resource Identifiers (URI): Generic Syntax,(http://www.ietf.org/rfc/rfc2396.txt)2.关于JSP/Servlet中的相对路径和绝对路径。2.1服务器端的地址服务器端的相对地址指的是相对于你的web应用的地址,这个地址是在服务器端解析的(不同于 html和javascript中的相对地址,他们是由客户端浏览器解析的)也就是说这时候在jsp和servlet中的相对地址应该是相对于你的web 应用,即相对于http: //192.168.0.1/webapp/的。其用到的地方有:forward:servlet中的 request.getRequestDispatcher(address);这个address是在服务器端解析的,所以,你要forward到 a.jsp应该这么写:request.getRequestDispatcher(“/user/a.jsp”)这个/ 相对于当前的web应用webapp,其绝对地址就是:http://192.168.0.1/webapp/user/a.jsp。 sendRedirect:在jsp中<%response.sendRedirect("/rtccp/user/a.jsp");%>2.22、客户端的地址所有的html页面中的相对地址都是相对于服务器根目录 (http://192.168.0.1/)的,而不是(跟目录下的该Web应用的目录) http://192.168.0.1/webapp/的。 Html中的form表单的action属性的地址应该是相对于服务器根目录(http://192.168.0.1/)的,所以,如果提交到a.jsp 为:action="/webapp/user/a.jsp"或action="<%=request.getContextPath()% >"/user/a.jsp;提交到servlet为actiom="/webapp/handleservlet" Javascript也是在客户端解析的,所以其相对路径和form表单一样。因此,一般情况下,在JSP/HTML页面等引用的CSS,Javascript.Action等属性前面最好都加上<%=request.getContextPath()%>,以确保所引用的文件都属于Web应用中的目录。另外,应该尽量避免使用类似".","./","../../"等类似的相对该文件位置的相对路径,这样当文件移动时,很容易出问题。3. JSP/Servlet中获得当前应用的相对路径和绝对路径3.1 JSP中获得当前应用的相对路径和绝对路径根目录所对应的绝对路径:request.getRequestURI()文件的绝对路径  :application.getRealPath(request.getRequestURI());当前web应用的绝对路径 :application.getRealPath("/");取得请求文件的上层目录:new File(application.getRealPath(request.getRequestURI())).getParent()3.2 Servlet中获得当前应用的相对路径和绝对路径根目录所对应的绝对路径:request.getServletPath();文件的绝对路径 :request.getSession().getServletContext().getRealPath(request.getRequestURI())当前web应用的绝对路径 :servletConfig.getServletContext().getRealPath("/");(ServletContext对象获得几种方式:javax.servlet.http.HttpSession.getServletContext()javax.servlet.jsp.PageContext.getServletContext()javax.servlet.ServletConfig.getServletContext())4.java 的Class中获得相对路径,绝对路径的方法4.1单独的Java类中获得绝对路径根据java.io.File的Doc文挡,可知:默认情况下new File("/")代表的目录为:System.getProperty("user.dir")。一下程序获得执行类的当前路径    package org.cheng.file;    import java.io.File;    public class FileTest {      public static void main(String[] args) throws Exception {          System.out.println(Thread.currentThread().getContextClassLoader().getResource(""));            System.out.println(FileTest.class.getClassLoader().getResource(""));            System.out.println(ClassLoader.getSystemResource(""));          System.out.println(FileTest.class.getResource(""));          System.out.println(FileTest.class.getResource("/"));         //Class文件所在路径         System.out.println(new File("/").getAbsolutePath());          System.out.println(System.getProperty("user.dir"));      }  }  4.2服务器中的Java类获得当前路径(来自网络)(1).WeblogicWebApplication的系统文件根目录是你的weblogic安装所在根目录。例如:如果你的weblogic安装在c:eaweblogic700.....那么,你的文件根路径就是c:.所以,有两种方式能够让你访问你的服务器端的文件:a.使用绝对路径:比如将你的参数文件放在c:yourconfigyourconf.properties,直接使用 new FileInputStream("yourconfig/yourconf.properties");b.使用相对路径:相对路径的根目录就是你的webapplication的根路径,即WEB-INF的上一级目录,将你的参数文件放在yourwebappyourconfigyourconf.properties, 这样使用:new FileInputStream("./yourconfig/yourconf.properties");这两种方式均可,自己选择。(2).Tomcat在类中输出System.getProperty("user.dir");显示的是%Tomcat_Home%/bin(3).Resin不是你的JSP放的相对路径,是JSP引擎执行这个JSP编译成SERVLET的路径为根.比如用新建文件法测试File f = new File("a.htm");这个a.htm在resin的安装目录下(4).如何读相对路径哪?在Java文件中getResource或getResourceAsStream均可例:getClass().getResourceAsStream(filePath);//filePath可以是"/filename",这里的/代表web发布根路径下WEB-INF/classes默认使用该方法的路径是:WEB-INF/classes。已经在Tomcat中测试。5.读取文件时的相对路径,避免硬编码和绝对路径的使用。(来自网络)5.1 采用Spring的DI机制获得文件,避免硬编码。参考下面的连接内容:http://www.javajia.net/viewtopic.php?p=90213&5.2 配置文件的读取参考下面的连接内容:http://dev.csdn.net/develop/article/39/39681.shtm5.3 通过虚拟路径或相对路径读取一个xml文件,避免硬编码参考下面的连接内容:http://club.gamvan.com/club/clubPage.jsp?iPage=1&tID=10708&ccID=86.Java中文件的常用操作(复制,移动,删除,创建等)(来自网络)常用 java File 操作类http://www.easydone.cn/014/200604022353065155.htmJava文件操作大全(JSP中)http://www.pconline.com.cn/pcedu/empolder/gj/java/0502/559401.htmljava文件操作详解(Java中文网)http://www.51cto.com/html/2005/1108/10947.htmJAVA 如何创建删除修改复制目录及文件http://www.gamvan.com/developer/java/2005/2/264.html总结:通过上面内容的使用,可以解决在Web应用服务器端,移动文件,查找文件,复制删除文件等操作,同时对服务器的相对地址,绝对地址概念更加清晰。建议参考URI,的RFC标准文挡。同时对Java.io.File. Java.net.URI.等内容了解透彻对其他方面的理解可以更加深入和透彻。这是我经常用的在Java中去当前项目的根目录的方法java 代码    public class Application {                        public static String getRootPath(){           //因为类名为"Application",因此" Application.class"一定能找到           String result = Application.class.getResource("Application.class").toString();           int index = result.indexOf("WEB-INF");           if(index == -1){               index = result.indexOf("bin");           }           result = result.substring(0,index);           if(result.startsWith("jar")){               // 当class文件在jar文件中时,返回"jar:file:/F:/ ..."样的路径                result = result.substring(10);           }else if(result.startsWith("file")){               // 当class文件在class文件中时,返回"file:/F:/ ..."样的路径                result = result.substring(6);           }           if(result.endsWith("/"))result = result.substring(0,result.length()-1);//不包含最后的"/"           return result;       }   }   ... 全文

休闲 Java中的文件路径获取 路径获取 Java 文件路径 文件路径获取

提高生产力:开源Java工具包Jodd(Java的”瑞士军刀”)

官方网站:http://jodd.org/下载地址:http://jodd.org/download/index.htmlJodd=tools + ioc + mvc + db + aop + tx + html < 1.3MJodd是一个普通开源Java包。你可以把Jodd想象成Java的"瑞士军刀",不仅小,锋利而且包含许多便利的功能。... 全文

Java 开源 框架 Jodd 博客

java序列化读取与文本文件读取数据效率对比

<转>java序列化读取与文本文件读取数据效率对比 - 笑天的日志 - 网易博客  2011-02-23 14:08:53|  分类:默认分类|  标签:|字号大中小 订阅java序列化读取与文本文件读取数据效率对比Java2010-05-07 10:50:56阅读49评论0  字号:大中小 订阅分别写入数据到序列化文件和文本文件中:public static void main(String[] args) {  ArrayList al = new ArrayList();  try {      FileWriter fw = new FileWriter(new File("e:\\s.txt"));   for(int i=0;i<1000;i++){    String str = "000\t111\t222\t222\t222\t222\t222\t222\t222\t222\n";    al.add(str);    fw.write(str);   }   fw.close();   FileOutputStream fileStream = new FileOutputStream("e:\\s.obj");    ObjectOutputStream out = new ObjectOutputStream(fileStream);    out.writeObject(al);   out.close();   } catch (Exception e) {   e.printStackTrace();  }    }  然后写程序读取序列化文件和文本文件,并将数据赋值到ArrayList中。序列化读取: public static void main(String[] args) {  ArrayList al = new ArrayList();  try {   long t = System.currentTimeMillis();   FileInputStream fileStream = new FileInputStream("e:\\s.obj");      BufferedInputStream br = new BufferedInputStream(fileStream);    ObjectInputStream in = new ObjectInputStream(br);   al = (ArrayList)in.readObject();      in.close();    System.out.println(System.currentTimeMillis()-t);  } catch (Exception e) {   e.printStackTrace();  }  }//文本文件读取: public static void main(String[] args) {  ArrayList al = new ArrayList();  try {   long t = System.currentTimeMillis();   FileReader fw = new FileReader(new File("e:\\s.txt"));   BufferedReader br = new BufferedReader(fw);   String s = br.readLine();   while (s != null) {    al.add(s);    s = br.readLine();   }   br.close();   fw.close();   System.out.println(System.currentTimeMillis()-t);  } catch (Exception e) {   e.printStackTrace();  } }结论:在行数i=1000时,序列化读取平均32,文本文件读取平均16。在行数i=10000时,序列化读取平均46,文本文件读取平均46。在行数i=100000时,序列化读取平均96,文本文件读取平均316。故在大数据量读取时,使用序列化方式存取数据,效率较高;而在小数据量(小于10000行)时,使用文本文件存取数据效率较高。引文来源  <转>java序列化读取与文本文件读取数据效率对比 - 笑天的日志 - 网易博客... 全文

文件效率 java序列化 文本文件序列化 java 博客

Java高手真经_编程基础卷——读书笔记(5)——如何用Eclipse调试Java程序

在学习Java的过程中,很少会一帆风顺,有时候明明觉得自己写的程序是对的,但要么编译出错,要么运行时得不到自己想要的 结果,这时候干着急是没用的,合理的运用Eclipse的调试功能,可以对Java的学习有促进的作用,不仅可以找出问题的所在,也 可以对Java代码执行的顺序有所了解。 eclipse 为我们提供了调试器,可以方便的跟踪代码,查看堆栈信息,方便追踪程序错误。在Eclipse中进行程序调试,需要如下3个步骤: (1)添加断点  断点是手工指定的程序运行停止的点。断点是你放置在程序里面的临时标记,它使调试器知道在哪停止程序的运行。通过在代码前设置断点,程序运行到断点暂停,你就可以 检查变量、寄存器、存储器及堆栈的内容,继续往下执行,还可以看到其变化,这样就会知道问题是怎么引起来的。    设置断点的方法,在Java类的编辑器中,只需要用鼠标双击你要添加断点的某一行的左侧的边栏,就会出现蓝色的圈,(vs里是按F9,出现红色圈,原谅我一直想着vs和C#)。 如果要去掉断点,则可以双击该圆圈即可。可以同时添加多个不同位置的断点。断点必须添加在有效的Java代码中,对于空行、注释行不能添加,你就是加也加不上去。 (2)启动调试   添加断点后,只有启动调试才可以生效。Eclipse中只有这样才会启动调试器(好麻烦),遇到断点才会停止。    启动调试的方法,在代码编辑界面右键或是在工作区(最左边栏)右键你想调试的那个java文件,选中右键菜单中的“Debug As”-->"Java Application"。这是会自动转变到调试界面。 (3)跟踪调试   启动调试后,就会打开跟踪调试的视图,该视图的左上方显示了程序的堆栈,右上方显示了当前程序的执行点的变量,中间的程序窗口 显示了当前程序的执行位置,debug后,程序将会运行到第一个遇到的断点,等待手工调试,让程序继续执行,有这么几个快捷键。   1、 F5 跳入函数,   2、F6 移动到下一行代码   3、F7 跳出当前运行的函数   4、F8 绕过所有断点直接运行程序,产生结果。在按以上按键执行程序时,如果发现有什么错误,就可以查看右上方窗口的程序变量,确定问题出现什么地方。... 全文

eclipse java 调试

《JAVA与模式》之装饰模式(Decrator)以及装饰模式在Java I/O中的应用

在阎宏博士的《JAVA与模式》一书中开头是这样描述装饰(Decorator)模式的:  装饰模式又名包装(Wrapper)模式。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。 ... 全文

java io 设计

JDK自带的java.util.Timer定时器的实现原理

      本文是我在项目中使用Timer后, 又看了一下Timer实现原理的整理. 主要介绍JKD自带的 java.util.Timer 定时器的实现原理Timer使用本身很简单, 同样, 他的设计原理也很精妙.如果你仅仅只是想知道如何在自己的程序中来使用java.util.Timer的一些方法,那么请移步: http://robinsoncrusoe.iteye.com/blog/986320      API介绍在这里:  http://online.chinaitpower.com/api/jdk150/java/util/Timer.html... 全文

java.util.Timer java 休闲 定时器 职场

[Java 8] (3) 字符串遍历和Comparator接口

遍历一个字符串 在Java 8中,CharSequence接口新添加了一个方法叫做chars(),方法的签名是这个样子的:publicdefaultIntStreamchars() default关键字修饰的接口方法是Java 8中新添加的特性,目的是向接口中添加已经实现的方法。chars()方法返回了一个IntStream类型,所以chars()实际上是为所有实现了CharSequence接口的类型(String类,StringBuffer类,StringBuilder类等)开启了通往函数式编程和Lambda表达式的大门。... 全文

java 8 lambda 函数式编程 java 读书笔记

【小白的java成长系列】——java ide 开发工具eclipse的操作

今天看了一下自己的博客文章,里面的内容还是比较杂的,有好多技术,有好多语言,都没有突出自己的强项,可以说,从博客里面,看不出我到底是做哪块的。。加上今天被授予了博客准专家勋章,自己想了一下,还是得梳理一下自己的知识点,其实我是做java开发,目前职位是java高级开发工程师。今天来说说java的IDE神器——eclipse。... 全文

开发工具 eclipse 操作系统 helloworld java ee

Java面向对象设计最佳实践——内置类设计

      < >< >  < >   <>                    ... 全文

内置类 java Java面向对象设计最佳实践 休闲 内置类设计

Java编程那些事儿11——JDK的获得、安装和配

第二章 建立开发环境         “工欲善其事,必先利其器”。         进行程序开发,首先要安装开发相关的软件,并且熟悉这些工具软件的基本使用。本章介绍一下两类开发工具的使用:l 基础开发工具基础开发工具是进行程序设计的基础,包含开发中需要的一些基本功能,例如编译、运行等,是其它开发工具的基础。Java语言的基本开发工具是SUN公司免费提供的JDK。实际开发中,为了方便和程序开发的效率,一般不直接使用基础开发工具,所以对于很多基础开发工具,只需要掌握其基本的使用即可。l 集成开发环境(IDE)集成开发环境是指将程序设计需要的很多功能,例如代码编辑、代码调试、程序部署等等一系列功能都整合到一个程序内部,方便程序开发,并提高实际的开发效率,简化了程序设计中的很多操作。Java语言的集成开发环境很多,常见的有Eclipse、JBuilder、NetBeans等等。由于实际开发中,基本都是使用集成开发环境进行开发,所以在学习中必须熟练掌握该类工具的使用。一般集成开发环境的使用都很类似,在学习时只要熟练掌握了其中一个的使用,其它的工具学习起来也很简单。本文以Eclipse为例来介绍集成开发环境的基本使用。2.1 JDK开发环境         JDK(Java Developer’s Kit),Java开发者工具包,也称J2SDK(Java 2 Software Development Kit),是SUN公司提供的基础Java语言开发工具,该工具软件包含Java语言的编译工具、运行工具以及执行程序的环境(即JRE)。         JDK现在是一个开源、免费的工具。         JDK是其它Java开发工具的基础,也就是说,在安装其它开发工具以前,必须首先安装JDK。         对于初学者来说,使用该开发工具进行学习,可以在学习的初期把精力放在Java语言语法的学习上,体会更多底层的知识,对于以后的程序开发很有帮助。         但是JDK未提供Java源代码的编写环境,这个是SUN提供的很多基础开发工具的通病,所以实际的代码编写还需要在其它的文本编辑器中进行。其实大部分程序设计语言的源代码都是一个文本文件,只是存储成了不同的后缀名罢了。         常见的适合Java的文本编辑器有很多,例如JCreator、Editplus、UltraEdit等。         下面依次来介绍JDK的下载、安装、配置和使用。2.1.1 JDK的获得         如果需要获得最新版本的JDK,可以到SUN公司的官方网站上进行下载,下载地址为:                   http://java.sun.com/javase/downloads/index.jsp         下载最新版本的“JDK 6 Update 6”,选择对应的操作系统,以及使用的语言即可。         在下载Windows版本时,有两个版本可供下载,,分别是:l Windows Online Installation在线安装版本,每次安装时都从网络上下载安装程序,在下载完成以后,进行实际的安装。l Windows Offline Installation离线安装版本,每次安装时直接进行本地安装。         通常情况下,一般下载离线安装版本。         其实如果不需要安装最新版本的话,也可以在国内主流的下载站点下载JDK的安装程序,只是这些程序的版本可能稍微老一些,这些对于初学者来说其实问题不大。2.1.2 JDK的安装         Windows操作系统上的JDK安装程序是一个exe可执行程序,直接安装即可,在安装过程中可以选择安装路径以及安装的组件等,如果没有特殊要求,选择默认设置即可。程序默认的安装路径在C:/Program Files/Java目录下。2.1.3 JDK的配置         JDK安装完成以后,可以不用设置就进行使用,但是为了使用方便,一般需要进行简单的配置。         由于JDK提供的编译和运行工具都是基于命令行的,所以需要进行一下DOS下面的一个设定,把JDK安装目录下bin目录中的可执行文件都添加到DOS的外部命令中,这样就可以在任意路径下直接使用bin目录下的exe程序了。         配置的参数为操作系统中的path环境变量,该变量的用途是系统查找可执行程序所在的路径。         配置步骤为:                   1、“开始”>“设置”>“控制面板”>“系统”如果控制面板的设置不是经典方式,那么可以在控制面板的“性能和维护”中找到“系统”。                            当然,也可以选择桌面上的“我的电脑”,点击鼠标右键,选择“属性”打开。                   2、在“系统属性”窗口中,选择“高级”属性页中的“环境变量”按钮。3、在“环境变量”窗口中,选择“系统变量”中变量名为“Path”的环境变量,双击该变量。4、把JDK安装路径中bin目录的绝对路径,添加到Path变量的值中,并使用半角的分号和已有的路径进行分隔。例如JDK的安装路径下的bin路径是 C:/Program Files/Java/jdk1.6.0_04/bin,则把该路径添加到Path值的起始位置,则值为:C:/Program Files/Java/jdk1.6.0_04/bin;C:/Program Files/PC Connectivity Solution/;C:/Program Files/Java/jdk1.6.0_04/bin;C:/j2sdk1.4.2_11/bin;%SystemRoot%/system32;%SystemRoot%;%SystemRoot%/System32/Wbem以上路径在不同的计算机中可能不同。         配置完成以后,可以使用如下格式来测试配置是否成功:1、 打开“开始”>“程序”>“附件”>“命令提示符”2、 在“命令提示符”窗口中,输入javac,按回车执行如果输出的内容是使用说明,则说明配置成功。如果输出的内容是“’javac’不是内部或外部命令,也不是可执行的程序或批处理文件。”,则说明配置错误,需要重新进行配置。常见的配置错误为:1)         路径错误,路径应该类似C:/Program Files/Java/jdk1.6.0_04/bin。2)         分隔的分号错误,例如错误的打成冒号或使用全角的分号。... 全文

jdk java 编程 开发工具 java开发工具 程序开发

Java编程那些事儿11——JDK的获得、安装和配置

 Java编程那些事儿11——JDK的安装、配置和使用作者:陈跃峰出自:http://blog.csdn.net/mailbomb第二章 建立开发环境         “工欲善其事,必先利其器”。         进行程序开发,首先要安装开发相关的软件,并且熟悉这些工具软件的基本使用。本章介绍一下两类开发工具的使用:l 基础开发工具基础开发工具是进行程序设计的基础,包含开发中需要的一些基本功能,例如编译、运行等,是其它开发工具的基础。Java语言的基本开发工具是SUN公司免费提供的JDK。实际开发中,为了方便和程序开发的效率,一般不直接使用基础开发工具,所以对于很多基础开发工具,只需要掌握其基本的使用即可。l 集成开发环境(IDE)集成开发环境是指将程序设计需要的很多功能,例如代码编辑、代码调试、程序部署等等一系列功能都整合到一个程序内部,方便程序开发,并提高实际的开发效率,简化了程序设计中的很多操作。Java语言的集成开发环境很多,常见的有Eclipse、JBuilder、NetBeans等等。由于实际开发中,基本都是使用集成开发环境进行开发,所以在学习中必须熟练掌握该类工具的使用。一般集成开发环境的使用都很类似,在学习时只要熟练掌握了其中一个的使用,其它的工具学习起来也很简单。本文以Eclipse为例来介绍集成开发环境的基本使用。2.1 JDK开发环境         JDK(Java Developer’s Kit),Java开发者工具包,也称J2SDK(Java 2 Software Development Kit),是SUN公司提供的基础Java语言开发工具,该工具软件包含Java语言的编译工具、运行工具以及执行程序的环境(即JRE)。         JDK现在是一个开源、免费的工具。         JDK是其它Java开发工具的基础,也就是说,在安装其它开发工具以前,必须首先安装JDK。         对于初学者来说,使用该开发工具进行学习,可以在学习的初期把精力放在Java语言语法的学习上,体会更多底层的知识,对于以后的程序开发很有帮助。         但是JDK未提供Java源代码的编写环境,这个是SUN提供的很多基础开发工具的通病,所以实际的代码编写还需要在其它的文本编辑器中进行。其实大部分程序设计语言的源代码都是一个文本文件,只是存储成了不同的后缀名罢了。         常见的适合Java的文本编辑器有很多,例如JCreator、Editplus、UltraEdit等。         下面依次来介绍JDK的下载、安装、配置和使用。2.1.1 JDK的获得         如果需要获得最新版本的JDK,可以到SUN公司的官方网站上进行下载,下载地址为:                   http://java.sun.com/javase/downloads/index.jsp         下载最新版本的“JDK 6 Update 6”,选择对应的操作系统,以及使用的语言即可。         在下载Windows版本时,有两个版本可供下载,,分别是:l Windows Online Installation在线安装版本,每次安装时都从网络上下载安装程序,在下载完成以后,进行实际的安装。l Windows Offline Installation离线安装版本,每次安装时直接进行本地安装。         通常情况下,一般下载离线安装版本。         其实如果不需要安装最新版本的话,也可以在国内主流的下载站点下载JDK的安装程序,只是这些程序的版本可能稍微老一些,这些对于初学者来说其实问题不大。2.1.2 JDK的安装         Windows操作系统上的JDK安装程序是一个exe可执行程序,直接安装即可,在安装过程中可以选择安装路径以及安装的组件等,如果没有特殊要求,选择默认设置即可。程序默认的安装路径在C:/Program Files/Java目录下。2.1.3 JDK的配置         JDK安装完成以后,可以不用设置就进行使用,但是为了使用方便,一般需要进行简单的配置。         由于JDK提供的编译和运行工具都是基于命令行的,所以需要进行一下DOS下面的一个设定,把JDK安装目录下bin目录中的可执行文件都添加到DOS的外部命令中,这样就可以在任意路径下直接使用bin目录下的exe程序了。         配置的参数为操作系统中的path环境变量,该变量的用途是系统查找可执行程序所在的路径。         配置步骤为:                   1、“开始”>“设置”>“控制面板”>“系统”如果控制面板的设置不是经典方式,那么可以在控制面板的“性能和维护”中找到“系统”。                            当然,也可以选择桌面上的“我的电脑”,点击鼠标右键,选择“属性”打开。                   2、在“系统属性”窗口中,选择“高级”属性页中的“环境变量”按钮。3、在“环境变量”窗口中,选择“系统变量”中变量名为“Path”的环境变量,双击该变量。4、把JDK安装路径中bin目录的绝对路径,添加到Path变量的值中,并使用半角的分号和已有的路径进行分隔。例如JDK的安装路径下的bin路径是C:/Program Files/Java/jdk1.6.0_04/bin,则把该路径添加到Path值的起始位置,则值为:C:/Program Files/Java/jdk1.6.0_04/bin;C:/Program Files/PC Connectivity Solution/;C:/Program Files/Java/jdk1.6.0_04/bin;C:/j2sdk1.4.2_11/bin;%SystemRoot%/system32;%SystemRoot%;%SystemRoot%/System32/Wbem以上路径在不同的计算机中可能不同。         配置完成以后,可以使用如下格式来测试配置是否成功:1、 打开“开始”>“程序”>“附件”>“命令提示符”2、 在“命令提示符”窗口中,输入javac,按回车执行如果输出的内容是使用说明,则说明配置成功。如果输出的内容是“’javac’不是内部或外部命令,也不是可执行的程序或批处理文件。”,则说明配置错误,需要重新进行配置。常见的配置错误为:1)         路径错误,路径应该类似C:/Program Files/Java/jdk1.6.0_04/bin。2)         分隔的分号错误,例如错误的打成冒号或使用全角的分号。 ... 全文

jdk java 编程 开发工具 java开发工具 程序开发

聊聊JVM(三)两种计算Java对象大小的方法

这篇说说如何计算Java对象大小的方法。之前在聊聊高并发(四)Java对象的表示模型和运行时内存表示 这篇中已经说了Java对象的内存表示模型是Oop-Klass模型。普通对象的结构如下,按64位机器的长度计算1. 对象头(_mark), 8个字节2. Oop指针,如果是32G内存以下的,默认开启对象指针压缩,4个字节3. 数据区4.Padding(内存对齐),按照8的倍数对齐数组对象结构是... 全文

JVM java.lang.instrument Unsafe Java对象大小 内存分布

在AIX Version 5.3中使用Java和PHP技术进行开发,第1部分:设置Java环境

window.location.href='http://www.ibm.com/developerworks/cn/aix/library/au-javaphpaix1/?S_TACT=105AGX52&S_CMP=techcto';给力(0票)动心(0票)废话(0票)专业(0票)标题党(0票)路过(0票) getcountscom(51430,11); getcountscom(51430,12); getcountscom(51430,13); getcountscom(51430,14); getcountscom(51430,15); getcountscom(51430,16); ... 全文

AIX PHP Java 环境 ibmdw

Sublime Text 2报“Decode error

Sublime Text 2报“Decode error - output not utf-8”错误的解决办法作者:chszs,转载需注明。作者博客主页:http://blog.csdn.net/chszs正如我在上一篇博客《Sublime Text 2搭建Java开发环境》中所述,在Sublime Text 2上搭建Java开发环境后,如果遇到报错,错误提示如下:Compiling Demo.java....... [Decode error - output not utf-8] [Decode error - output not utf-8] [Finished in 0.5s] 应该怎么办?这是因为Java配置的编译环境的编码不正确,因为默认的Sublime Text 2的编码是UTF-8。很简单,解决办法如下:【解决办法】修改JavaC.sublime-build配置文件,添加如下行:(如图所示)... 全文

Decode error java Java JAVA output not utf-8 sublime text 2 Sublime Text 2 编译环境

java多线程实现火车售票系统 以及java中的同步的实现 同步块 和同步方法同时 同步

  /* 利用Java 多线程模拟火车站售票系统  了解java中的同步 class  Test {  public  static void main(String []args)  {      SellThread st=new SellThread(); //创建一个实现了implements接口的对象     new Thread(st).start();   //启动四个Thread     new Thread(st).start();     new Thread(st).start();     new Thread(st).start();   } }   class SellThread   implements Runnable {    int index =100;    public void run()    {         while(true)       {           if(index>0)           {          try           {          Thread.sleep(10);  //函数抛出异常我们要进行异常捕获 休眠之后 所有Thread等待在这里           }           catch(Exception e)            {            e.printStackTrace();            }          System.out.println(Thread.currentThread().getName()+"sell tickets "+ index--);              }        }   }  ... 全文

java 多线程 thread exception class object

java中经常用到的读写配置文件的信息properties属性的写入,读取例子

java中经常用到的读写配置文件的信息properties属性的写入,读取例子 原文路径:http://blog.csdn.net/swared/article/details/5327809 package com.util;import java.io.*;import java.util.*;/** *  * @author zhaizhanpo *  * */public class ReadWriteProUtil {      /**  * 根据key读取value  * 在工程中取得相对路径的方法 :this.getClass().getResource("工程路径").getPath();  * @param filePath  * @param key  * @return  */    public static String readValue(String filePath, String key){        Properties props = new Properties();        FileInputStream in=null;        try{            in = new FileInputStream(filePath);            props.load(in);            String value = props.getProperty(key);            return value;        }catch(Exception e){            e.printStackTrace();            return null;        }finally{         try {    in.close();   } catch (IOException e) {    // TODO Auto-generated catch block    e.printStackTrace();   }        }    }        /**     * 读取properties的全部信息     * @param filePath 文件的路径     */    public static void readProperties(String filePath){        Properties props = new Properties();        InputStream in=null;        try{            in = new BufferedInputStream(new FileInputStream(filePath));            props.load(in);            Enumeration en = props.propertyNames();            while(en.hasMoreElements()){                String key = (String)en.nextElement();                String property = props.getProperty(key);                System.out.println(key + " : " + property);            }        }catch(Exception e){            e.printStackTrace();        }finally{         try {    in.close();   } catch (IOException e) {    // TODO Auto-generated catch block    e.printStackTrace();   }        }    }        /**     * 写入properties信息     * @param filePath 要写入的文件的路径     * @param parameterName 要改变的值得件     * @param parameterValue 要改成的内容     */        public static void writeProperties(String filePath, String parameterName, String parameterValue){        Properties props = new Properties();        OutputStream fos=null;        InputStream fis =null;        try{            fis = new FileInputStream(filePath);            //从输入流中读取属性列表(键和元素对)            props.load(fis);             fis.close();            fos = new FileOutputStream(filePath);            props.setProperty(parameterName, parameterValue);            //以适合使用load方法加载到Properties表中的格式,将此Properties表中的属性列表(键和元素对)写入输出流            //加载额外的内容            String otherC;            props.store(fos,otherContent);        }catch(IOException e){            e.printStackTrace();        }finally{         try {    fis.close();    fos.close();   } catch (IOException e) {    e.printStackTrace();   }               }    }    public static void main(String[] args) {     // example 更改用户名称     String filepath="D://Test//src//pro.txt";     ReadWriteProUtil.writeProperties(filepath,"userName","000");     //输出更改后的信息。        System.out.println(ReadWriteProUtil.readValue(filepath,"userName"));    }}***********************************************************************************注:当前项目路径是String filepath=System.getProperty("user.dir");对下面的程序很有用.../*** 实现对Java配置文件Properties的读取、写入与更新操作*/package test;import java.io.BufferedInputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.util.Properties;/*** @author * @version 2008.11.14*/public class SetSystemProperty {    //属性文件的路径    static String profilepath="mail.properties";    /**    * 采用静态方法    */    private static Properties props = new Properties();    static {        try {            props.load(new FileInputStream(profilepath));        } catch (FileNotFoundException e) {            e.printStackTrace();            System.exit(-1);        } catch (IOException e) {                    System.exit(-1);        }    }    /**    * 读取属性文件中相应键的值    * @param key    *            主键    * @return String    */    public static String getKeyValue(String key) {        return props.getProperty(key);    }    /**    * 根据主键key读取主键的值value    * @param filePath 属性文件路径    * @param key 键名    */     public static String readValue(String filePath, String key) {        Properties props = new Properties();        try {            InputStream in = new BufferedInputStream(new FileInputStream(                    filePath));            props.load(in);            String value = props.getProperty(key);            System.out.println(key +"键的值是:"+ value);            return value;        } catch (Exception e) {            e.printStackTrace();            return null;        }    }        /**    * 更新(或插入)一对properties信息(主键及其键值)    * 如果该主键已经存在,更新该主键的值;    * 如果该主键不存在,则插件一对键值。    * @param keyname 键名    * @param keyvalue 键值    */     public static void writeProperties(String keyname,String keyvalue) {                try {            // 调用 Hashtable 的方法 put,使用 getProperty 方法提供并行性。            // 强制要求为属性的键和值使用字符串。返回值是 Hashtable 调用 put 的结果。            OutputStream fos = new FileOutputStream(profilepath);            props.setProperty(keyname, keyvalue);            // 以适合使用 load 方法加载到 Properties 表中的格式,            // 将此 Properties 表中的属性列表(键和元素对)写入输出流            props.store(fos, "Update '" + keyname + "' value");        } catch (IOException e) {            System.err.println("属性文件更新错误");        }    }    /**    * 更新properties文件的键值对    * 如果该主键已经存在,更新该主键的值;    * 如果该主键不存在,则插件一对键值。    * @param keyname 键名    * @param keyvalue 键值    */     public void updateProperties(String keyname,String keyvalue) {        try {            props.load(new FileInputStream(profilepath));            // 调用 Hashtable 的方法 put,使用 getProperty 方法提供并行性。            // 强制要求为属性的键和值使用字符串。返回值是 Hashtable 调用 put 的结果。            OutputStream fos = new FileOutputStream(profilepath);                        props.setProperty(keyname, keyvalue);            // 以适合使用 load 方法加载到 Properties 表中的格式,            // 将此 Properties 表中的属性列表(键和元素对)写入输出流            props.store(fos, "Update '" + keyname + "' value");        } catch (IOException e) {            System.err.println("属性文件更新错误");        }    }    //测试代码    public static void main(String[] args) {        readValue("mail.properties", "MAIL_SERVER_PASSWORD");        writeProperties("MAIL_SERVER_INCOMING", "327@qq.com");                System.out.println("操作完成");    }}... 全文

java操作配置文件 休闲 properties信息 Java获取配置文件信息 职场

专访孔德芳:如何才能提高Java Web性能?

孔德芳认为,设计模式不会随着各种语言或开发框架的没落而没落,它犹如老酒,愈久愈醇香... 全文

社区之星 孔德芳 访谈 Java Java Web Web应用 框架 开源 设计模式 云计算

聊聊高并发(三十三)Java内存模型那些事(一)从一致性(Consistency)的角度理解Java内存模型

可以说并发系统要解决的最核心问题之一就是一致性的问题,关于一致性的研究已经有几十年了,有大量的理论,算法支持。这篇说说一致性这个主题一些经常提到的概念,理清Java内存模型在其中的位置。... 全文

一致性 Consistency Java内存模型