日期:2014-05-19  浏览次数:20865 次

jar包问题
被jar包搞的焦头烂额啊,实在是不能解决了啊,现在只能求助论坛大家帮我解决了啊。
项目文件结构:
confuse __src__
  | |__mainlginFrame.java
  | |__Config.java
  |__lib
  |__Config.ini 
Config.java 中有一段读Config.ini文件的代码:大致如下:
Java code
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发布呢?

我虽然查阅了相关的资料,但是没能解决,希望大家能帮帮我。如果我没有叙述清楚,可以给我留言啊。


------解决方案--------------------
对,获取当前运行包的路径 再加上你的Config.int作为配置文件的路径。
------解决方案--------------------
config.ini文件有没有打进jar包中,可以用winrar打开jar包,看一下,看config.ini在不在里面。
不在的话,就是没打进去。不行的话用winrar 找开jar包状态下,可以把config.ini文件复制进去。

另外,打完的jar包放在lib文件夹下运行,然后右键文件,选择Build Path--add Build Path 
(eclipse下)。
------解决方案--------------------
探讨

引用:

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

如何获取当前运行包的绝对路径啊?

------解决方案--------------------
LZ做成exe以后就无法跨平台了,不如用批处理.bat或.h文件通过java或javaw去执行jar