我正在尝试创建一个 JavaSampleCLient 并通过 JMeter 加载它。这在较新版本的 JMeter 中工作正常。即版本 5.4.1
。但是我需要支持 JMeter 2.10
。在这里,当我尝试加载我的 jar 文件时,它会产生以下异常
2021/07/29 17:11:32 INFO - jmeter.JMeter: Loaded icon properties from org/apache/jmeter/images/icon.properties
2021/07/29 17:11:44 FATAL - jmeter.JMeter: An error occurred: java.lang.VerifyError: Cannot inherit from final class
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:550)
at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:458)
at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:452)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:451)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:398)
at org.apache.jorphan.reflect.ClassFinder.isChildOf(ClassFinder.java:465)
at org.apache.jorphan.reflect.ClassFinder.access$000(ClassFinder.java:46)
at org.apache.jorphan.reflect.ClassFinder$FilterTreeSet.add(ClassFinder.java:106)
at org.apache.jorphan.reflect.ClassFinder$FilterTreeSet.add(ClassFinder.java:63)
at org.apache.jorphan.reflect.ClassFinder.findClassesInOnePath(ClassFinder.java:532)
at org.apache.jorphan.reflect.ClassFinder.findClassesInPaths(ClassFinder.java:548)
at org.apache.jorphan.reflect.ClassFinder.findClassesThatExtend(ClassFinder.java:291)
at org.apache.jmeter.gui.action.ActionRouter.populateCommandMap(ActionRouter.java:257)
at org.apache.jmeter.gui.action.ActionRouter.getInstance(ActionRouter.java:300)
at org.apache.jmeter.JMeter.startGui(JMeter.java:231)
at org.apache.jmeter.JMeter.start(JMeter.java:380)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.jmeter.NewDriver.main(NewDriver.java:259)
Cannot inherit from final class
异常似乎是 well known 问题。即,较新版本的 Java 要么在类定义中添加了 final
,和/或现在将其视为安全违规。
但是我正在努力确定问题区域。也就是说,我可以找到解决办法。
是否有关于如何解决此问题的任何建议?由于此错误来自 JMeter 2.10,我想用最新的 Java 版本重新编译是不可能的。