class Main { public static void main(String[] args) { .... } }
Запуск программы через оболочку:
java Main
работает как положено но запуск программы через ant:
` вызывает эту ошибку:
java.lang.IllegalAccessException: Class org.apache.tools.ant.taskdefs.ExecuteJava can not access a member of class Main with modifiers "public static"
JLS Section 12.3.3 Resolution of Symbolic References:
IllegalAccessError: A symbolic reference has been encountered that specifies a use or assignment of a field, or invocation of a method, or creation of an instance of a class, to which the code containing the reference does not have access because the field or method was declared private, protected, or default access (not public), or because the class was not declared public.
Таким образом,
org.apache.tools.ant.taskdefs.ExecuteJava
не может выполнить метод, потому что его окружающий класс является закрытым, но если я запускаю jvm, указывающий на.class, с помощью частного метода, он не проходит через тот же механизм безопасности?Этот вопрос похож, но я все еще не понимаю