schemaspy - 带有类文件版本错误的 Java 运行时错误
问题描述
我已经下载了几乎所有可以找到的 JDBC 驱动程序版本以及多个版本的 JAVA。
每次我尝试运行 SchemaSpy 时,都会收到以下错误:
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)
Caused by: java.lang.UnsupportedClassVersionError: com/microsoft/sqlserver/jdbc/SQLServerDriver has been compiled by a more recent version of the Java Runtime (class file version 57.0), this version of the Java Runtime only recognizes class file versions up to 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at org.schemaspy.input.dbms.DbDriverLoader.getDriverClass(DbDriverLoader.java:170)
at org.schemaspy.input.dbms.DbDriverLoader.getDriver(DbDriverLoader.java:144)
at org.schemaspy.input.dbms.DbDriverLoader.getConnection(DbDriverLoader.java:93)
at org.schemaspy.input.dbms.DbDriverLoader.getConnection(DbDriverLoader.java:75)
at org.schemaspy.input.dbms.service.SqlService.connect(SqlService.java:70)
at org.schemaspy.SchemaAnalyzer.analyze(SchemaAnalyzer.java:220)
at org.schemaspy.SchemaAnalyzer.analyze(SchemaAnalyzer.java:123)
at org.schemaspy.cli.SchemaSpyRunner.runAnalyzer(SchemaSpyRunner.java:98)
at org.schemaspy.cli.SchemaSpyRunner.run(SchemaSpyRunner.java:87)
at org.schemaspy.Main.main(Main.java:55)
... 8 mor
关于如何解决这个问题的任何想法?
解决方案
@texnoob 我在尝试使用旧数据库类型运行 SchemaSpy 时看到了这一点。尝试使用更高版本的 SQL Server-t mssql08
而不是。-t mssql
使用命令行开关运行 SchemaSpy-dbhelp
应该返回支持的类型,但它对我不起作用。查找类型的另一种方法是在允许您浏览存档(WinZip、WinRAR 等)的应用程序中打开 SchemaSpy JAR 文件。打开后,您将在路径“BOOT-INF\classes\org\schemaspy\types”中找到列出的数据库类型。
如果更改数据库类型仍然不起作用,请提供您发出的命令行语句以供进一步分析。
推荐阅读
- ios - iOS 15 SDK - `memcpy()` 未导出
- regex - 正则表达式匹配多个条目
- java - 如何仅反转字符串中的数字
- firebase - 为什么当我的 TextFormField 获得焦点时我的页面会重新加载?
- mqtt - Twincat 3 中与 Microsoft Azure 云的 MQTT 连接
- flutter - 如何在 Flutter 中将音频与 lottie / rive 动画同步?
- php - laravel 队列中的 ShouldBeUnique 是什么
- pine-script - 当有 2 支蜡烛但少于 4 支时如何突出显示?
- html - ngxPrint 在内部组件的角度使用时无效
- python - 如何通过按单元格删除重复项将数字数据框的 ColA 转换为按每个单元格值排序?