quartz 1.8.3을 사용하여 Java 코드를 스크립트로 실행하려고 시도했습니다. Apache BSF 3.1 빌드에서 패키지화 된 BSF 언어 jar를 사용하고 있습니다. JVM 버전은 1.6.0_29입니다. 이 스크립트를 평가하려고 할 때com.sun.script.java.JavaCompiler가 존재하지 않는 메소드를 호출합니다.
내가 얻을 :
java.lang.NoSuchMethodError: javax.tools.JavaCompiler.getTask(Ljava/io/Writer;Ljavax/tools/JavaFileManager;Ljavax/tools/DiagnosticListener;Lnet/sourceforge/retroweaver/runtime/java/lang/Iterable;Lnet/sourceforge/retroweaver/runtime/java/lang/Iterable;Lnet/sourceforge/retroweaver/runtime/java/lang/Iterable;)Ljavax/tools/JavaCompiler$CompilationTask;
at com.sun.script.java.JavaCompiler.compile(JavaCompiler.java:105)
at com.sun.script.java.JavaScriptEngine.parse(JavaScriptEngine.java:114)
at com.sun.script.java.JavaScriptEngine.eval(JavaScriptEngine.java:81)
at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:247)
at foo.quartzutils.ScriptJob.evalScript(ScriptJob.java:106)
at foo.quartzutils.ScriptJob.execute(ScriptJob.java:54)
at org.quartz.core.JobRunShell.run(JobRunShell.java:216)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)
나는 가능성이 누락 될 수 있는지 결정하기 위해 손실에 있어요.
업데이트 : 추적하기가 더욱 어려워지기 때문에 간헐적입니다. 작업을 한 시간에 한 번 실행하도록 예약하면 해당 예외로 세 번 실패 할 수 있습니다. 두 번 작동 한 다음 다시 실패 할 수 있습니다.
가능 중복 된 [I가 javax.tools.JavaCompiler이 소스를 컴파일 사용할 때 클래스 경로를 설정하는 방법?] (http://stackoverflow.com/questions/1563909/how-to- set-classpath-when-i-use-javax-tools-javacompiler-source 컴파일) – bigGuy
@bigGuy 속임수가 아님. 그 질문은 API를 사용하는 방법을 묻습니다.이 API는이 API를 찾을 수 없습니다. – JasonMArcher