我们希望让我们的用户能够编写我们在库运行时调用的小型Java方法。这些用户没有安装JDK,也不知道如何操作。但他们确实安装了Java并运行我们的Java库。
有没有办法我们可以用我们的库发送一些最小的Java编译器?
javac
编译器有一个编程接口(由jshell
使用,除其他外),并且存在于Java 9及更高版本的java.compiler
和jdk.compiler
模块中。表达对这些模块的依赖关系并使用jlink
构建运行时。
您可以通过反复试验来隔离一些可执行文件,我已经为jps
和jcmd
工具执行了此操作,以便为我的应用程序进行流程检查。
我刚刚为javac
快速尝试了这个并设法正确编译它,但希望这不是使用我的一些系统变量。
你需要一个文件夹结构
bin
-> javac.exe
-> jli.dll
lib
-> tools.jar
将代码放入bin文件夹并运行javac
请记住,运行javac所需的是依赖于操作系统的,并且在Windows上进行了测试。您可能需要一些额外的文件用于其他操作系统,如Linux,因为这是我遇到的问题之一。