Tôi gặp sự cố với thư viện Reflections. Tôi đang cố tải động tất cả các lớp thực hiện giao diện cụ thể. Mọi thứ hoạt động tốt (tất cả các lớp được nạp) miễn là tôi không sử dụng biểu thức lambda trong các lớp này (java 8). Tôi đã thử nâng cấp phiên bản lib nhưng hiệu ứng lại giống nhau (java.io.IOException: loại hằng số không hợp lệ: 18).Phản ánh - Java 8 - loại hằng số không hợp lệ
phụ thuộc và xây dựng trong pom.xml
<dependency>
<groupId>org.reflections</groupId>
<artifactId>reflections</artifactId>
<version>0.9.10</version>
<exclusions>
<exclusion>
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.19.0-GA</version>
</dependency>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
mà không loại trừ là tác dụng tương tự.
Code:
URL jarUrl = jarFile.toURI().toURL();
URLClassLoader child = new URLClassLoader(new URL[]{jarUrl}, this.getClass().getClassLoader());
ConfigurationBuilder builder = new ConfigurationBuilder()
.addClassLoader(child)
.addUrls(jarUrl)
.setScanners(new SubTypesScanner());
Reflections r = new Reflections(builder);
return r.getSubTypesOf(cls);
Làm thế nào tôi có thể tải các lớp học với biểu thức lambda?
Tái bút: Xin lỗi vì tiếng Anh :)
Bản sao có thể có của [Lỗi tạo entityManagerFactory do lỗi buộc phải quét] (http://stackoverflow.com/questions/24281235/error-creating-entitymanagerfactory-due-to-error-tying-to-scan-jar -file) –