标签: java-9

Java,IllegalAccessorError:超类访问检查失败

我一直在用Java编写自己的小项目,最近,我编译了它并收到了这个错误:

线程"main"中的异常java.lang.IllegalAccessError:超类访问检查失败:类kröw.zeale.v1.program.core.DataManager$ ConstructList(在未命名模块@ 0x4563e9ab中)无法访问类com.sun.javafx.collections.ObservableListWrapper (在模块javafx.base中)因为模块javafx.base没有将com.sun.javafx.collections导出到未命名的模块@ 0x4563e9ab

背景:

所以,我目前有三个不同的类,都在同一个包中.我的层次结构如下:

• Kröw
• DataManager
   ? ConstructList
Run Code Online (Sandbox Code Playgroud)

在我的程序的早期版本中,我的层次结构是这样的:

• Kröw
   ? DataManager
      - ConstructList
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,ConstructList延长com.sun.javafx.collections.ObservableListWrapper<Construct>.(我不认为Construct这里的班级是必要的,我宁愿不展示它,但如果需要,我可以.)

无论如何,现在,我的IDE可以按预期运行应用程序,但是,当我导出它时,上面的例外是给我的.

完整堆栈跟踪:

Exception in thread "main" java.lang.IllegalAccessError: superclass access check failed: class kröw.zeale.v1.program.core.DataManager$ConstructList (in unnamed module @0x4563e9ab) cannot access class com.sun.javafx.collections.ObservableListWrapper (in module javafx.base) because module javafx.base does not export com.sun.javafx.collections to unnamed module @0x4563e9ab
        at java.base/java.lang.ClassLoader.defineClass1(Native Method)
        at java.base/java.lang.ClassLoader.defineClass(Unknown Source)
        at java.base/java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(Unknown Source)
        at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(Unknown Source)
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(Unknown …
Run Code Online (Sandbox Code Playgroud)

java java-9

3
推荐指数
2
解决办法
3862
查看次数

JDK9中的预定义模块是什么,或者我需要哪个模块来修复依赖性问题?

JDK9将(可能)引入一个模块系统.作为其中的一部分,Java类库将被模块化.

当找不到类时,这会导致异常,因为它们位于未指定为依赖项的模块中.

将使用模块系统创建哪些模块以及它们各自的内容是什么?

或者说不同:给定一个没有加载的类,我如何找到适当的模块作为依赖项?

java java-platform-module-system java-9 java-module

3
推荐指数
1
解决办法
749
查看次数

在Java 9中以编程方式连接到JMX代理

我需要连接到编程方式使用(如果有必要在运行时加载剂)附加API JMX剂如实例这里.这在Java 8中运行良好,但在Java 9中不起作用,因为lib文件夹中不再有management-agent.jar:

String agent = vm.getSystemProperties().getProperty("java.home") +
   File.separator + "lib" + File.separator + "management-agent.jar";
Run Code Online (Sandbox Code Playgroud)

能否请您在Java 9中建议什么是正确的方法?

在此先感谢,瓦迪姆

java jmx attach-api java-9

3
推荐指数
1
解决办法
529
查看次数

安装JDK 9后无法启动Spring Tool Suite

我安装了Spring Tool Suite(版本3.9.0).它以前工作得很好.安装JDK 9后,我无法启动Spring Tool Suite.

我可以在错误日志中看到以下内容:

java.lang.NoClassDefFoundError:org.eclipse.e4.core.internal.di.InjectorImpl.disposed(InjectorImpl.java:450)中的javax/annotation/PreDestroy atg.eclipse.e4.core.internal.di.Requestor.disposed (Requestor.java:156)org.eclipse.e4.core.internal.contexts.ContextObjectSupplier $ ContextInjectionListener.update(ContextObjectSupplier.java:78)at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt) .java:111)org.eclipse.e4.core.internal.contexts.TrackableComputationExt.handleInvalid(TrackableComputationExt.java:74)at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseContext.java:178 )org.eclipse.e4.core.internal.contexts.osgi.EclipseContextOSGi.dispose(EclipseContextOSGi.java:99)at org.eclipse.e4.core.internal.contexts.osgi.EclipseContextOSGi.bundleChanged(EclipseContextOSGi.java:141) )在org.eclipse.osgi.framework.eventmgr.EventM的org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:908)anger.dispatchEvent(EventManager.java:230)org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java: 213)位于org.eclipse.osgi的org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:120)org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:112) .internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:168)atg.eclipse.osgi.container.Module.publishEvent(Module.java:476)org.eclipse.osgi.container.Module.doStop(Module.java) :634)org.eclipse.osgi.container.Module.stop(Module.java:498)org.eclipse.osgi.container.SystemModule.stop(SystemModule.java:202)org.eclipse.osgi.internal.在java.base/java中的framework.EquinoxBundle $ SystemBundle $ EquinoxSystemModule $ 1.run(EquinoxBundle.java:165).lang.Thread.run(Thread.java:844)引起:java.lang.ClassNotFoundException:org.eclipse中的org.eclipse.e4.core.di_1.6.100.v20170421-1418找不到javax.annotation.PreDestroy. osg.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:433)位于org.eclipse.osgi.BongleLoader.findClass(BundleLoader.java:395)的org.eclipse.osgi.internal.loader.BundleLoader. findClass(BundleLoader.java:387)位于java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)的org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150)

这个问题真的是因为JDK 9吗?请指出我正确的方向来解决问题.

谢谢.

java eclipse spring java-9

3
推荐指数
1
解决办法
897
查看次数

Unity无法构建apk Android

我遵循统一的"坦克!" 教程,现在我试图在Android上移植游戏,这是我第一次使用Unity,现在当它构建APK统一告诉我"无法构建APK"然后我得到一些错误,我附加你错误我认为这是致命的,请告诉我它有什么问题.

CommandInvokationFailure: Failed to build apk.
C:/Program Files/Java/jdk-9.0.1\bin\java.exe -Xmx2048M -D com.android.sdkmanager.toolsdir="C:/Android_SDK\tools" -D file.encoding=UTF8 -jar "C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\sdktools.jar"-

stderr[
    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:62)
            at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.base/java.lang.reflect.Method.invoke(Method.java:564)
            at SDKMain.main(SDKMain.java:130)
    Caused by: java.lang.NoClassDefFoundError: sun/misc/BASE64Encoder
            at com.android.sdklib.internal.build.SignedJarBuilder.<init>(SignedJarBuilder.java:177)
            at com.android.sdklib.build.ApkBuilder.init(ApkBuilder.java:446)
            at com.android.sdklib.build.ApkBuilder.<init>(ApkBuilder.java:422)
            at com.android.sdklib.build.ApkBuilder.<init>(ApkBuilder.java:362)
            at UnityApkBuilder.<init>(UnityApkBuilder.java:214)
            at UnityApkBuilder.main(UnityApkBuilder.java:34)
            ... 5 more
    Caused by: java.lang.ClassNotFoundException: sun.misc.BASE64Encoder
            at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:466)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:563)
            at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
        ... 11 more
]
stdout[

]

exit code: 1
UnityEditor.Android.Command.WaitForProgramToRun (UnityEditor.Utils.Program p, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.Command.Run(System.Diagnostics.ProcessStartInfo …
Run Code Online (Sandbox Code Playgroud)

c# sdk android unity-game-engine java-9

3
推荐指数
1
解决办法
1980
查看次数

jMockit初始化时出错:java.lang.IllegalStateException:在JDK 9上运行

jmockit无法在eclipse中初始化:java.lang.IllegalStateException:在JDK 9上运行需要-javaagent:/jmockit-1.n.jar或-Djdk.attach.allowAttachSelf

如果我添加-Djdk.attach.allowAttachSelfVM参数,它可以正常工作.

为什么我需要添加该参数?jmockit并不是说在JDK 9上运行时是必需的.是的,JRE系统库指向JDK,是的,jmockit jar按照外部库的顺序高于junit.

版本:JUnit 4.12,Java jdk 9.0.1,jmockit 1.37,hamcrest core 1.3

java.base上的java.lang.ExceptionInInitializerError(testClass.java:20)java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl) .java:62)在org的java.base/java.lang.reflect.Method.invoke(Method.java:564)的java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43).在org.junit.runners.model.FrameworkMethod.invokeExplosively的org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)中的junit.runners.model.FrameworkMethod $ 1.runReflectiveCall(FrameworkMethod.java:50) (FrameworkMethod.java:47)org.junit上的org.junit.runners.Statements.InvokeMethod.evaluate(InvokeMethod.java:17)org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325). runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRu)nner.java:57)org.junit.runners.ParentRunner $ 3.run(ParentRunner.java:290)org.junit.runners.ParentRunner $ 1.schedule(ParentRunner.java:71)org.junit.runners.ParentRunner .runChildren(ParentRunner.java:288)位于org.junit的org.junit.runners.rarentRunner.access $ 000(ParentRunner.java:58)org.junit.runners.ParentRunner $ 2.evaluate(ParentRunner.java:268). runners.ParentRunner.run(ParentRunner.java:363)位于org.eclipse.jdt.internal.junit.runner.TestExecution的org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86).运行(TestExecution.java:38)org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:539)org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner. java:761)org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:461)org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:207)引起:java.lang.IllegalStateException:运行 在JDK 9上需要在mockit.internal.startup.AgentLoader.loadAgent的mockit.internal.startup.AgentLoader.attachToRunningVM(AgentLoader.java:155)中使用-javaagent:/jmockit-1.n.jar或-Djdk.attach.allowAttachSelf (AgentLoader.java:60)at mockit.internal.startup.Startup.verifyInitialization(Startup.java:137)at mockit.Invocations.(Invocations.java:26)... 24更多

java eclipse junit jmockit java-9

3
推荐指数
1
解决办法
2923
查看次数

使用Java 9使"gradle javadoc"任务正常工作

我有一个使用source/target = 1.9/1.9的多模块Gradle Java项目.有两个模块,my.basemy.dependsOnBase.该my.base模块没有其它的依赖:

module my.base {
    exports my.base.foo;
    exports my.base.bar;
}
Run Code Online (Sandbox Code Playgroud)

所述my.dependsOnBase模块仅具有单一的依赖,这是my.base:

module my.dependsOnBase {
    requires my.base;
    exports my.dependsOnBase.baz;
}
Run Code Online (Sandbox Code Playgroud)

当我运行$ gradle javadoc它在my.base上工作正常.但是当它到达my.dependsOnBase时,我得到以下错误输出:

/path/to/my $ gradle javadoc

> Task :dependsOnBase:javadoc FAILED
/path/to/my/dependsOnBase/src/main/java/module-info.java:26: error: module not found: my.base
    requires my.base;
                     ^
1 error


FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':dependsOnBase:javadoc'.
> Javadoc generation failed. Generated Javadoc …
Run Code Online (Sandbox Code Playgroud)

java javadoc gradle java-platform-module-system java-9

3
推荐指数
1
解决办法
558
查看次数

Java 9模块系统资源文件位置

我没有写下有问题的所有内容,而是想放置一张图片.问题是我应该在哪里放置包含.properties文件的资源目录?

有关更多信息和确切问题,请参见图像. Java 9资源目录

java resources java-9

3
推荐指数
1
解决办法
1594
查看次数

Java 9新的docs结构 - 哪里有"旧的"java包?

我习惯从以下链接访问Java SE文档,我可以从中搜索java.awt,java.util等软件包:

https://docs.oracle.com/javase/7/docs/api/

https://docs.oracle.com/javase/8/docs/api/

但是,当访问版本9的类似链接时,我可以看到一些模块结构与Java SE文档非常不同,直到版本8."旧"Java包发生了什么?

java javadoc java-9 java-module

3
推荐指数
1
解决办法
83
查看次数

Hadoop / HDFS 3.1.1(在Java 11上)在加载文件资源管理器时Web UI崩溃?

之后start-dfs.sh,我可以导航到http://localhost:9870。NameNode似乎运行得很好。

然后单击“实用程序->浏览文件系统”,并在Web浏览器中得到以下提示:

Failed to retrieve data from /webhdfs/v1/?op=LISTSTATUS: Server Error
Run Code Online (Sandbox Code Playgroud)

深入日志文件($HADOOP_HOME/logs/hadoop-xxx-namenode-xxx.log),我发现:

2018-11-30 16:47:25,097 WARN org.eclipse.jetty.servlet.ServletHandler: Error for /webhdfs/v1/
java.lang.NoClassDefFoundError: javax/activation/DataSource
    at com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl.(RuntimeBuiltinLeafInfoImpl.java:457)
    at com.sun.xml.bind.v2.model.impl.RuntimeTypeInfoSetImpl.(RuntimeTypeInfoSetImpl.java:65)
    at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.createTypeInfoSet(RuntimeModelBuilder.java:133)
Run Code Online (Sandbox Code Playgroud)

因此缺少一堂课。为什么会这样,如何解决该问题?

noclassdeffounderror hdfs java-9 hadoop3 java-11

3
推荐指数
1
解决办法
1141
查看次数