场景
假设有一个spring boot 应用程序,只想更新其中的某一个文件,并重新打包到spring boot程序中
有时候,自己想把jar解压后稍微改一下,然后重新打包并运行,发现spring boot 程序起不来
有源代码
如何使用javac 编译某一个文件(myclass.java)
-
unzip spring boot jar文件(unzip myspring-boot.jar),找到BOOT-INFO/lib目录
-
javac --classpath ‘./BOOT-INF/lib/*’ -parameters src/main/java/com/test/myclass.java
-
如果myclass需要直接加到 jar -uf0 myspring-boot.jar -C src/main/java com/test/myclass.class (注意需要使用0,表示不压缩)
-
如果myclass 属于./BOOT-INF/lib/my.jar,则 需要先更新./BOOT-INF/lib/my.jar中的myclass,之后吧./BOOT-INF/lib/my.jar更新到myspring-boot.jar中
jar -uf ./BOOT-INF/lib/my.jar -C src/main/java com/test/myclass.class
jar -uf0 ./myspring-boot.jar BOOT-INF/lib/my.jar-C 选项指定个文件在本机上的根目录,后面的路径是文件在jar里的相对路径
没有源代码
可以使用jad先反编译,之后在更新反编译出来的代码
常见问题与解决方案: