我正在尝试创建一个包含所有依赖项的jar,它将托管一个使用Java编译器API在运行时生成类的小型Groovy程序。我使用Gradle One Jar来制作它,但是我也尝试了Maven程序集插件并取得了相同的结果。这是代码失败的代码:
def compiler = ToolProvider.getSystemJavaCompiler()
assert compiler != null
在我的jar文件上运行java -jar
时的结果:
Exception in thread "main" Assertion failed:
assert compiler != null
| |
null false
我猜这可能是一个明显的问题,排除了包含编译器的相应JDK jar。关于如何解决这个问题的任何建议?我不需要Gradle或Maven特定的建议,认为这会有所帮助。
答案 0 :(得分:0)
我认为Peter试图暗示的是你最有可能使用JRE运行你的java命令,它不包括编译器的tools.jar。你需要tools.jar或。更好的是,安装了JDK。
如果您想知道如何将类或jar添加到清单文件的类路径部分,您可以阅读http://docs.oracle.com/javase/tutorial/deployment/jar/downman.html