java打包碰到的问题
一、打包
1、使用eclipse自带的export无法将所有的依赖的包(暂时未发现方法)
2、使用maven进行打包可将所有依赖包进行包装,但需要在pom文件中进行配置
在dependencies的同级增加如下两个节点
<packaging>jar</packaging>
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.ctrip.you.replace.service.ReplaceMain</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>assembly</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
该配置参考:http://www.cnblogs.com/lxzh/archive/2012/10/17/2727107.html
3、运行
二、包内资源访问
当将文件等资源打入jar包后,不能使用普通的File操作方式进行访问
在获取conf目录下的loadConfig.properties文件需要使用如下方式
ReplaceMain.class.getResourceAsStream("/conf/loadConfig.properties")
如果使用如下方式,将会报告文件无法找到的异常
String filePath = ReplaceMain.class.getResource("/conf/loadConfig.properties").getPath();
File file = new File(filePath);
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】博客园携手 AI 驱动开发工具商 Chat2DB 推出联合终身会员
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步