Проверьте, сохраняется ли код java, скомпилированный во время выполнения, в виде строки - PullRequest
0 голосов
/ 26 мая 2020

Мне нужно другое решение для компиляции во время выполнения 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]+)$"));}}}")

Результат для этого кода верный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...