Exception in Application constructor Exception in thread "main" java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1071) Caused by: java.lang.RuntimeException: Unable to construct Application instance: class com.example.demo.Main at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:891) at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:196) at java.base/java.lang.Thread.run(Thread.java:833) Caused by: java.lang.IllegalAccessException: class com.sun.javafx.application.LauncherImpl (in module javafx.graphics) cannot access class com.example.demo.Main (in module com.example.javafxtest) because module com.example.javafxtest does not export com.example.demo to module javafx.graphics at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:392) at java.base/java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:674) at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:489) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480) at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$8(LauncherImpl.java:803) at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:484) at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:457) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:456) at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:184) ... 1 more
时间: 2023-06-21 15:07:37 浏览: 389
这个异常看起来是因为模块间的访问限制导致的。在Java 9及以上版本中,模块化成为了标准,模块之间默认是不互相可见的。因此,在你的代码中,可能是因为 `com.example.demo.Main` 所在的模块 `com.example.javafxtest` 没有将 `com.example.demo` 模块导出给 `javafx.graphics` 模块,所以 `javafx.graphics` 无法访问 `Main` 类。
你可以尝试将 `com.example.demo` 模块导出给 `javafx.graphics` 模块,方法是在 `com.example.javafxtest` 模块的 `module-info.java` 文件中添加如下代码:
```java
module com.example.javafxtest {
exports com.example.demo to javafx.graphics;
// ...
}
```
如果还有问题,可以提供更多的上下文信息,如代码片段、日志等。
相关问题
exception in thread "main" java.lang.reflect.invocationtargetException
`Exception in thread "main" java.lang.reflect.InvocationTargetException` 是 Java 程序运行时可能遇到的一种异常。这个异常通常是因为使用了 Java 反射 API(Reflection API)在运行时动态地调用了一个方法,而该方法抛出了一个异常。`InvocationTargetException` 是一个包装类,用来包装在反射调用中方法内部抛出的异常。
在使用 Java 反射 API 时,你可能会使用到 `Class.getMethod(String name, Class<?>... parameterTypes)` 或者 `Constructor.newInstance(Object... initargs)` 等方法来动态地创建对象或者调用方法。当这些方法在执行过程中遇到异常时,会将异常封装在 `InvocationTargetException` 中抛出。
例如,如果你在调用一个方法时该方法内部抛出了 `NullPointerException`,那么实际抛给你的异常将是 `InvocationTargetException`,而真正的异常则被封装在 `InvocationTargetException` 的 `getCause()` 方法返回的异常中。
要解决这个问题,你需要捕获 `InvocationTargetException`,然后通过调用 `getCause()` 方法来获取原始异常,并对原始异常进行相应的处理。
[root@zhaosai ~]# hive Logging initialized using configuration in jar:file:/opt/programs/apache-hive-1.2.2-bin/lib/hive-common-1.2.2.jar!/hive-log4j.properties Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:522) at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:677) at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:621) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.hadoop.util.RunJar.run(RunJar.java:221) at org.apache.hadoop.util.RunJar.main(RunJar.java:136) Caused by: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient at org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1523) at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.<init>(RetryingMetaStoreClient.java:86) at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:132) at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:104) at org.apache.hadoop.hive.ql.metadata.Hive.createMetaStoreClient(Hive.java:3005) at org.apache.hadoop.hive.ql.metadata.Hive.getMSC(Hive.java:3024) at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:503) ... 8 more Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1521) ... 14 more Caused by: javax.jdo.JDOFatalInternalException: Error creating transactional connection factory NestedThrowables:
这个错误提示看起来像是由于Hive无法连接到Hadoop集群或者Metastore服务导致的。您可以检查以下几点:
1. 检查Hadoop集群是否已经启动并运行中。
2. 检查Hive配置文件中是否正确配置了Hadoop集群的相关信息,如core-site.xml、hdfs-site.xml等。
3. 检查Metastore服务是否已经启动并运行中,以及Hive配置文件中是否正确配置了Metastore服务的相关信息。
4. 如果您使用的是远程Metastore服务,那么请检查网络连接是否畅通,能否访问到Metastore服务。
如果以上步骤都检查过了还是无法解决问题,可以尝试重新安装或者升级Hadoop和Hive,或者查看Hive日志文件,找到更详细的错误信息以便定位问题。
阅读全文
相关推荐















