被jar包搞的焦头烂额啊,实在是不能解决了啊,现在只能求助论坛大家帮我解决了啊。
项目文件结构:
confuse __src__
| |__mainlginFrame.java
| |__Config.java
|__lib
|__Config.ini
Config.java 中有一段读Config.ini文件的代码:大致如下:public class Config {
private final static String filename = "Config.ini";
private String username;
private String password;
public Config() throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(filename));
read(reader);
reader.close();
}
我用fat-jar打包之后,jar包在项目文件夹下可以运行,但是换到别的地方就不行了。而且将config.ini文件同打好的jar包放在同一文件夹下可以正常运行。我想知道这个config.ini文件是不是没能打到jar包里面去,还是怎样?我想不需要jar包和config.ini,而是将config.ini打进jar包,至少在自己的电脑,这个jar包可以随意在任何的目录下运行,然后在考虑根据这个jar包打成exe的问题。如果不能实现config.ini和jar包组合在一起,那在这种情况下该如何打成exe发布呢?我虽然查阅了相关的资料,但是没能解决,希望大家能帮帮我。如果我没有叙述清楚,可以给我留言啊。
项目文件结构:
confuse __src__
| |__mainlginFrame.java
| |__Config.java
|__lib
|__Config.ini
Config.java 中有一段读Config.ini文件的代码:大致如下:public class Config {
private final static String filename = "Config.ini";
private String username;
private String password;
public Config() throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(filename));
read(reader);
reader.close();
}
我用fat-jar打包之后,jar包在项目文件夹下可以运行,但是换到别的地方就不行了。而且将config.ini文件同打好的jar包放在同一文件夹下可以正常运行。我想知道这个config.ini文件是不是没能打到jar包里面去,还是怎样?我想不需要jar包和config.ini,而是将config.ini打进jar包,至少在自己的电脑,这个jar包可以随意在任何的目录下运行,然后在考虑根据这个jar包打成exe的问题。如果不能实现config.ini和jar包组合在一起,那在这种情况下该如何打成exe发布呢?我虽然查阅了相关的资料,但是没能解决,希望大家能帮帮我。如果我没有叙述清楚,可以给我留言啊。
解决方案 »
- 模板生成jsp页面
- 有没有做人力资源管理系统的大师
- 关于c3p0连接池的问题,似乎有没有放开的情况
- jbuilder菜鸟问题
- 那位servlet熟悉者帮我解决Services配置问题?web.xml
- 问一个hibernate的问题.
- 谁能帮忙理理思路?
- 请问JBOSS里面怎么实现jaas的认证工作!
- 我在websphere新建一个可视类后添加button,是否可以通过双击这个button使websphere自动生成一段actionListener的代码框架???
- ActiveMQ实现监听多个队列消费
- BufferedReader的readline()方法
- 使用session处理用户登录状态的问题
项目confuse下包含src,lib,config.ing,src下包含mainloginFrame.java和Config.java文件。
不在的话,就是没打进去。不行的话用winrar 找开jar包状态下,可以把config.ini文件复制进去。另外,打完的jar包放在lib文件夹下运行,然后右键文件,选择Build Path--add Build Path
(eclipse下)。
Test t = new Test();
System.out.println(t.getClass().getResource(""));
System.out.println(t.getClass().getResource("."));
System.out.println(t.getClass().getResource("/"));
}
结果为:
file:/F:/MyEclipsePath/bin/cn/yh/game/
file:/F:/MyEclipsePath/bin/cn/yh/game/
file:/F:/MyEclipsePath/bin/然后把用字符串方法substring或者replace方法把前面的file:/去掉就行了。