Мне нужно другое решение для компиляции во время выполнения java кода, сохраненного в виде строки с использованием. Это зависимость, используемая для компилятора времени выполнения.
<dependency>
<groupId>org.jvnet.sorcerer</groupId>
<artifactId>sorcerer-javac</artifactId>
<version>0.8</version>
</dependency>
На этой карте есть весь код и имя файла из базы данных.
public Map<String, String> fileNameCodeMap = new HashMap();
Я реализовал по ссылкам ниже, но результат не что я хотел. В этих вариантах мне нужен файл, и его создание и удаление обходятся довольно дорого.
http://www.javased.com/?api=javax.tools.JavaCompiler
https://www.javacodegeeks.com/2015/09/java-compiler-api.html
Есть ли опция, которая позволяет мне компилировать как строку? Меня не волнует, правильно ли он передает или что-то еще, я просто хочу проверить, компилируется ли этот код или есть ошибки.
Если есть другой способ реализовать то, что я хочу, я рад это видеть .
fileNameCodeMap.put("Main.java", "package com.company; import java.util.Map; public class Main {
public static void main(String[] args) {
// write your code here
String[] toValidate = {"@string112.cc", "test@one.com"};
for(String i : toValidate){ System.out.println(i.matches("^(.+)@([a-z]{0,4}\\.[a-z]+)$"));}}}")
Результат для этого кода верный.