jar包问题

kouwenlong 2012-09-05 04:18:02
被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发布呢?

我虽然查阅了相关的资料,但是没能解决,希望大家能帮帮我。如果我没有叙述清楚,可以给我留言啊。
...全文
163 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
为啥呢 2012-09-08
  • 打赏
  • 举报
回复
LZ做成exe以后就无法跨平台了,不如用批处理.bat或.h文件通过java或javaw去执行jar
Yhzhtk 2012-09-07
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

引用 3 楼 的回复:

对,获取当前运行包的路径 再加上你的Config.int作为配置文件的路径。

如何获取当前运行包的绝对路径啊?
[/Quote]
public static void main(String[] args) {
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:/去掉就行了。
kouwenlong 2012-09-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

对,获取当前运行包的路径 再加上你的Config.int作为配置文件的路径。
[/Quote]
如何获取当前运行包的绝对路径啊?
brightyq 2012-09-05
  • 打赏
  • 举报
回复
config.ini文件有没有打进jar包中,可以用winrar打开jar包,看一下,看config.ini在不在里面。
不在的话,就是没打进去。不行的话用winrar 找开jar包状态下,可以把config.ini文件复制进去。

另外,打完的jar包放在lib文件夹下运行,然后右键文件,选择Build Path--add Build Path
(eclipse下)。
Yhzhtk 2012-09-05
  • 打赏
  • 举报
回复
对,获取当前运行包的路径 再加上你的Config.int作为配置文件的路径。
  • 打赏
  • 举报
回复
获取这个文件的绝对路径Config.ini
kouwenlong 2012-09-05
  • 打赏
  • 举报
回复
可能排版有些问题,我重述一下文件结构啊。
项目confuse下包含src,lib,config.ing,src下包含mainloginFrame.java和Config.java文件。

67,541

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧