여기 내 목표 : 런타임시 여러 파서/렉서를 생성하고 파싱 및 렉싱을 위해 이들의 인스턴스를로드하려면 SableCC를 사용하십시오. 프로그래밍 방식으로 생성 된 .jar 파일로 클래스로드하기
그래서 나는 나의 단계가 될 것이다 생각 :이 SableCC를 사용하여
.java
파일을 생성합니다. 이 일을 다했다고 생각합니다..java
파일을.class
개의 파일로 컴파일하십시오. 나는JavaCompiler
을 사용하여 이것을했다. 나는 이것이 잘 작동했다고 생각한다.파일 구조를 유지하면서 생성 된 파일을
.jar
파일에 넣습니다. 나는 이것을 this을 템플릿으로 사용했다. JarBrowser을 사용하여.jar
파일을 검사하면 패키지의 파일 구조가 보존되었음을 알 수 있습니다. Jar Catalog를 사용하면 일반.jar
파일과 동일하게 보입니다. 그러나 JarBrowser를 사용하면 내 항아리가 "CLASSPATH 카탈로그"아래에 표시되지 않습니다. 이로 인해 내.jar
파일이 올바르게 작성되지 않는다고 생각됩니다..jar
파일을URLClassLoader
의 인스턴스로로드하십시오.Class.forName()
을 사용하여로드하려고하지만 작동하지 않는 것 같습니다.
4 단계를 수행 할 때마다 java.lang.ClassNotFoundException
이 표시됩니다. 왜이 사람이 어떤 아이디어를 가지고 있습니까?
가능한 복제본 [런타임시 Jars를 동적으로로드하는 방법] (http://stackoverflow.com/questions/60764/how-should-i-load-jars-dynamically-at-runtime) –
@EugeneRetunsky : 나는 그 질문에 이미 갔다. 거의 동일한 코드를 사용하고 있지만 작동하지 않습니다. 따라서 다른 질문 : P –
당신이 이것을 시도 : http://stackoverflow.com/questions/194698/how-to-load-a-jar-file-at-runtime? –