Как получить сценарий, связанный с элементом Stacktrace в GroovyJAVA

Программисты JAVA общаются здесь
Anonymous
Как получить сценарий, связанный с элементом Stacktrace в Groovy

Сообщение Anonymous »

Предположим, я создаю скрипт в Groovy, не создавая класс, например: < /p>

Код: Выделить всё

public int execute() {
String myString = null;
return myString.size();
}
< /code>
Если я настраиваю этот содержимое сценария в строке и делаю: < /p>
String myString = "public int execute() {...";
CompilerConfiguration config = new CompilerConfiguration();
config.setTargetByteCode(CompilerConfiguration.JDK8);
GroovyClassLoader groovyLoader = new GroovyClassLoader(getClassLoader(), config);
Class groovyClass = groovyLoader.parseClass(myString);
Then when I am calling my Groovy script I have an exception (here because I am trying to get the size of a null String), and the StackTrace elements will have the following kind of file names: Script_e217abab4c0c685a881796ac61cc4b28.groovy
This is exactly Та же строка, что и grovyclass.getsimplename () + ".groovy" , что позволяет мне знать, из какого сценария идет элемент Stacktrace. Обратите внимание, что это не «реальное» имя файла, потому что скрипт был создан строкой (а не из файла). < /P>
Теперь, если у меня есть следующий вид скрипта: < /p>

Код: Выделить всё

 public class MyGroovyClass {
public int execute() {
String myString = null;
return myString.size();
}
}
В данном случае groovyclass.getsimplename () + ".groovy" Is mygrovyclass.groovy Но элементы Stacktrace все еще имеют такую ​​же шаблон, что и раньше, например, script_e217abab4c0c685a881796ac61c68.groyvy. Пример. Все сценарии создаются из строк, потому что я изменяю содержимое сценариев, определенных в файлах пользователем (своего рода инструментов). Когда у меня есть Stacktrace, я не могу знать, из какого сценария появляется элемент, если связанный элемент - это отличный класс.>

Подробнее здесь: https://stackoverflow.com/questions/795 ... -in-groovy

Вернуться в «JAVA»