java 路径问题

摘要: jar包内的程序想要用“相对路径”读取包内的xml文件,读取不到.jar包的结构如下:client.jarapp/reader.classapp/template.xml 由于jar不是文件夹,因此对于包内的东西来说,没有所谓“绝对路径“,要读取在包内文件只能用“相对路径”。那么,是相对“谁”呢?在此程序中,reader.class负责调方法读取template.xml, 使用的方法是用File("路径")建立一个文件对象,然后读取. 一开始我用的文件路径是 "../template.xml", 这是相对reader.class的文件位置. 但是事实证明 阅读全文
posted @ 2011-04-22 08:51 廉帅博 阅读(203) 评论(0) 推荐(0)

equals() and hashCode() in java

摘要: 在java语言中,默认的equals()方法会执行==操作,也就是比较两个对象的hashcode, 如果相等就返回true. 这个hashcode值是根据对象的内存位置计算出来的,独一无二的(也有例外的情况), 所以可以说两个不同对象会有不同的hashcode, 因而equals()的结果都是true. 比如,两个引用如果指向同一对象,equals()的结果则为true.但是如果要比较两个对象的是在内容/意义上相同(semantically equal), 我们则需要覆盖equals()与hashCode(), 两个比较对象的这两个方法都要相同。假设有两个Song对象,我们要评判其相同的依据是 阅读全文
posted @ 2011-04-22 08:48 廉帅博 阅读(189) 评论(0) 推荐(0)

classload 加载机制

摘要: 在对ExtClassLoader getParent()的时候,会抛出NullPointException.Class是在需要使用的时候才被系统加载,而ClassLoader是用来加载Class的,一共有三种默认ClassLoader:Bootstrap loaderExtClassLoaderAppClassLoaderBootstrap loader是由C写成,而后两者由Java写成。在Java程序启动的时候,会依次按照以上排列顺序加载class loader, 并把上一个classloader设为自己的parent. 具体如下图:默认情况下,各个classloader会在如下目录搜索cl 阅读全文
posted @ 2011-04-22 08:44 廉帅博 阅读(607) 评论(0) 推荐(0)

关于 path/classpath

摘要: 文章来源: http://imthinking.iteye.com/blog/181855PATH:即使不设置PATH变量,也可以正常运行Java应用程序,但每次运行可执行文件时都需要指定这个可执行文件的完整路径,比如:C:\Program Files\Java\jdk1.6.0\bin\javac MyClass.java。PATH指定了一个路径列表,用于搜索可执行文件。执行一个可执行文件时,如果该文件不能在当前路径下找到,则依次寻找 PATH 中的每一个路径,直至找到。若找完 PATH 中的路径也不能找到,则报错。Java 的编译命令 (javac),执行命令 (java) 和一些工具命令 阅读全文
posted @ 2011-04-21 09:47 廉帅博 阅读(227) 评论(0) 推荐(0)