我的项目有很多依赖项,我通过设置告诉 winrun4j 包含所有依赖项
classpath.1=D:\lib\*.jar
在 ini 文件中。
服务日志告诉我 winrun4j 正在扩展类路径并生成类路径:
[info] Expanding Classpath: D:\lib\*.jar
[info] Expanding Classpath: D:\lib\activation-1.1.1.jar
[info] Expanding Classpath: D:\lib\activemq-client-5.10.2.jar
[...]
[...]many, many other libs here
[...]
[warn] Exceeded maximum classpath size
[info] Generated Classpath: D:\lib\activation-.1.1.jar;D:\lib\activemq-client-5.10.2.jar;[...]
为什么 winrun4j 会生成这样的类路径?是不是应该就够了
D:\lib\*.jar
?
有什么解决方法可以让服务在如此多的依赖项下运行吗?
最佳答案
早就知道的winrun4j问题,这里没有解决和讨论:
Exceeds maximum classpath length #59
https://github.com/poidasmith/winrun4j/issues/59
在这里:
Add an INI option to disable classpath glob expansion #67
https://github.com/poidasmith/winrun4j/issues/67
不幸的是,你没有太多的可能性。正如问题 59 所建议的那样,您可以将工作目录设置为模块目录。您可以保留一些字符。
D:\lib\activation-.1.1.jar;
将变为 lib\activation-.1.1.jar;
。
您还可以检查是否需要所有依赖项。
如果这还不够,您应该认真寻找替代方案,例如 JSmooth 或 Launch4J。
关于java - Winrun4j:超过最大类路径大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41439856/