分两种情况:
1.资源(配置文件、图片文件等)压入包中
在将资源打包到jar中时,特别要注意那样的问题,资源应该放到类路径中去,通过以下两种方法取得他的类路径:
· this.class.getResourceAsStream(name);其中name表示类的路径下的文件名称,返回值是输入流,例子如下:
TestDemo01.class.getResourceAsStream ("/images/ant_logo_large.gif")
注意:每个类加载后都有一个class,通过使用class来加载资源,而且要注意的是使用这样的方式来加载时一定要在资源名称的前面加上一个”/”。
· ClassLoader.getSystemResourceAsStream(name);使用此方法进行资源加载时,在资源名称的前面不加”/”。
注:如果将资源打包后,最好不要在来获取他的路径名称了,因为这样很容读错路径,从而导致空指针异常。一般情况下只能读。
2.资源不打包
· 这种情况下,可以使用路径读取的方式进行读写操作,但是却无法通过类路劲加载的方式进行读取。
· 可以使用System.getProperty(“user.dir”);能够获取得到当前的工作目录
3.如果想在执行jar的过程中看到输出的各种信息,最好使用命令行的方式进行启动。例子如下:
· java –classpath xxxx.jar SomeClass
· java –classpath.;C:\classess3;C:\lib\mytools.jar SomeClass
注:多个jar包使用”;”分开