我不是用JB的,但也碰到类似情况,
我解决的方法是将它放在classpath里,
运行时System.getProperty("java.class.path");得到所有classpath,
然后用System.getProperty("path.separator")作StringTokenizer,
分解所有classpath,并依次在里面查找是否存在String paths=System.getProperty("java.class.path");
String pathSeparator=System.getProperty("path.separator");
StringTokenizer tk=new StringTokenizer(paths,pathSeparator);
do{
String currentPath=tk.nextToken();
//Search in currentPath;
}while(tk.hasMoreTokens() && whatYouNeedStillNotFound);
我解决的方法是将它放在classpath里,
运行时System.getProperty("java.class.path");得到所有classpath,
然后用System.getProperty("path.separator")作StringTokenizer,
分解所有classpath,并依次在里面查找是否存在String paths=System.getProperty("java.class.path");
String pathSeparator=System.getProperty("path.separator");
StringTokenizer tk=new StringTokenizer(paths,pathSeparator);
do{
String currentPath=tk.nextToken();
//Search in currentPath;
}while(tk.hasMoreTokens() && whatYouNeedStillNotFound);
解决方案 »
- 为什么ch[i]改为ch之后就提示>=不能用于比较char,char[] 类型呢?
- 反射取得构造方法的数组是按什么顺序来的!?
- Myeclipse选中一个类或对象的时候,同一类型不显示灰色了怎么调回来!新手求指导
- jacob无法调用部分COM组件接口
- 大数据量arraylist与ehcache缓存的问题
- 把若干图片插入JTextPane以后,再怎么获得已经插入的图片对象
- JOptionPane.showMessageDialog能不能用在主方法里
- java.lang.ArrayIndexOutOfBoundsException:搞不定啊(先进先得)数组越界?
- 大虾帮忙!编译时提示这样的错误是为什么?
- 关于java编译不通过的简单问题!烦死了!
- 什么是接口?
- 请问大家微软给的jdbc驱动对sql-server开发人员版支持吗?
回复 | 推荐 | 收藏 | 专题 | 公告 | 管理 | 保存 | 关闭窗口
主 题: 相对路径不起作用????
作 者: Rock_Guan (Rock)
等 级:
信 誉 值: 100
所属论坛: Java J2SE / 基础类
问题点数: 100
回复次数: 6
发表时间: 2003-2-22 15:03:04
我用如下代码获取图片路径,
URL url = this.getClass().getResource("../image/user.gif");
Toolkit tk = Toolkit.getDefaultToolkit();
this.setIconImage(tk.createImage(url));在JBUilder内运行一切正常,但是用JBuilder生成exe程序后,在jubilder外运行exe程序,程序报错
java.lang.NullPointerException
at com.borland.jbcl.util.ImageLoader.load(ImageLoader.java:83)
看来是图片路径不对,
ClassLoader.getSystemResource("../image/emis.gif");的获取方式也试过了,都是不行,请高手指点搞定马上结贴
回复人: shine333(shine) ( ) 信誉:100 2003-2-22 15:35:49 得分:0
我不是用JB的,但也碰到类似情况,
我解决的方法是将它放在classpath里,
运行时System.getProperty("java.class.path");得到所有classpath,
然后用System.getProperty("path.separator")作StringTokenizer,
分解所有classpath,并依次在里面查找是否存在String paths=System.getProperty("java.class.path");
String pathSeparator=System.getProperty("path.separator");
StringTokenizer tk=new StringTokenizer(paths,pathSeparator);
do{
String currentPath=tk.nextToken();
//Search in currentPath;
}while(tk.hasMoreTokens() && whatYouNeedStillNotFound);
Top
class include .jar file
以下例子我做了测试,希望对你有帮助。a、文件路径如下:
f:\java\testjar.java
f:\java\MANIFEST.MF
f:\java\citi\sonnet.xml1、源文件
//:testjar.java
package citi;
import java.io.*;
public class testjar{
public static void main(String[] args){
try{
BufferedReader in;
String str;
//由于文件sonnet.xml要打入包中,故文件应该在包路径“citi”中
//使用时,需要使用相对路径来引用,如下面的".\\citi\\sonnet.xml"
in = new BufferedReader(new FileReader(".\\citi\\sonnet.xml"));
while((str = in.readLine())!= null){
System.out.println(str);
}
in.close();
}catch(Exception e){e.printStackTrace();}
}
}2、文件sonnet.xml内容
<?xml version="1.0"?>
<sonnet type="Shakespearean">
<author>tsc</author>
</sonnet>3、文件MANIFEST.MF内容
Manifest-Version: 1.0
Main-Class: citi.testjar
Created-By: tangshancheng4、操作步骤实例F:\java>javac testjar.java -d .F:\java>jar cvfm my.jar manifest.mf citi
标明清单(manifest)
增加:citi/(读入= 0) (写出= 0)(存储了 0%)
增加:citi/testjar.class(读入= 707) (写出= 464)(压缩了 34%)
增加:citi/sonnet.dtd(读入= 1165) (写出= 361)(压缩了 69%)
增加:citi/sonnet.xml(读入= 91) (写出= 80)(压缩了 12%)F:\java>java -jar my.jar
<?xml version="1.0"?>
<sonnet type="Shakespearean">
<author>tsc</author>
</sonnet>
java.io.FileNotFoundException: .\citi\sonnet.xml (系统找不到指定的路径。)
所以程序读取的是外部的sonnet.xml 而不是包内的