写了一些SSH的公共 Action 和 DAO方法。想作为jar包

写了一些SSH的公共 Action 和 DAO方法。想作为jar包引入,但是启动的时提示找不到类,比如模型类型
,调用action也是报错,说找不到,但是把jar包里面的解压放到工程目录就可以。

这是什么原因?我应该怎么解决?

参考:https://blog.csdn.net/china_bobo/article/details/54970429
https://download.csdn.net/download/okhaoba/1020938

我的一个目的是想把公共的Service和DAO层的源代码打个jar,以免开发人员随意修改。

利用Maven来打包,先把公共的DAO和SERVICE 单独放到子项目中通过 配置pom文件 修改 war为jar 然后打包就可以了

首先, jar实际是若干**.class**文件(及其附加文件)压缩得到的文件而已, 一般不会把源码**.java**文件压缩在其中的.

其次, Class not found,一般是classpath设置不正确导致javac/java找不到.class字节码导致的.对于你的jar出现的情况,我猜测的原因:
1. jar内部的目录层级不正确(以包名作为起始目录,不要添加额外的目录, 假定class名com.hello.Test,那么它应该对应jar内部的com/hello/Test.class)
2. 没有将jar添加到javac/java搜索的路径(没有添加到项目依赖)

最后,关于你希望开发人员不要修改源码的需求.你在打包jar时本身没有包含源码, 并不能直接修改. 当然, 通过编译可能能够获得源码,
针对这种情况,应该是有些代码混淆工具,借助这些工具,你就可以只发布包含安全的,难以反编译的.class字节码. 开发人员能否**看到**源码
都是待定的,就更不用说**随意修改**了

多说一点, 如果贵团队使用类似**git**这样的工具管理项目的话,即使所有源码对任何人可见,
git log这样的指令可以帮助你很轻易的看到某部分源码是否被修改.