首页 > 系统相关 >Ubuntu系统中CUDA套件nvvp启动后报错Unable to make protected void java.net.URLClassLoader.addURL(java.net.URL) a

Ubuntu系统中CUDA套件nvvp启动后报错Unable to make protected void java.net.URLClassLoader.addURL(java.net.URL) a

时间:2022-11-07 09:25:58浏览次数:75  
标签:java eclipse module base org net

最近在看cuda方面的内容,需要对cuda代码做一些性能分析,于是需要使用nvvp,但是启动nvvp后报错:Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected void java.net.URLClassLoader.addURL(java.net.URL) accessible: module java.base does not "opens java.net" to unnamed module @380fb434

 

 

详细报错信息:

(base) devil@hp:/tmp$ nvvp
java.lang.ExceptionInInitializerError
    at org.eclipse.osgi.storage.Storage.<init>(Storage.java:97)
    at org.eclipse.osgi.storage.Storage.createStorage(Storage.java:84)
    at org.eclipse.osgi.internal.framework.EquinoxContainer.<init>(EquinoxContainer.java:75)
    at org.eclipse.osgi.launch.Equinox.<init>(Equinox.java:31)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.startup(EclipseStarter.java:295)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:231)
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
    at java.base/java.lang.reflect.Method.invoke(Method.java:577)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1438)
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected void java.net.URLClassLoader.addURL(java.net.URL) accessible: module java.base does not "opens java.net" to unnamed module @380fb434
    at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
    at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
    at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:200)
    at java.base/java.lang.reflect.Method.setAccessible(Method.java:194)
    at org.eclipse.osgi.storage.FrameworkExtensionInstaller.findMethod(FrameworkExtensionInstaller.java:52)
    at org.eclipse.osgi.storage.FrameworkExtensionInstaller.findMethod(FrameworkExtensionInstaller.java:59)
    at org.eclipse.osgi.storage.FrameworkExtensionInstaller.findAddURLMethod(FrameworkExtensionInstaller.java:43)
    at org.eclipse.osgi.storage.FrameworkExtensionInstaller.<clinit>(FrameworkExtensionInstaller.java:37)
    ... 12 more

 

 

 

 

 

经过在网上Google后找到问题点在于java的jre环境过高,外网上的解决方法一般是将jre环境降到版本8,于是这里的查看本机java版本:

java --version

 

 

 

 

 

卸载系统中默认的java环境:

sudo apt remove java-common

 

 

 

 

 

重点提醒:

需要注意的是这里卸载的是系统环境下的java,因为本机并没有任何依赖系统路径下java环境的应用,因此就直接对系统路径下的java环境进行卸载和重安装,但是如果你的系统中有一些对系统路径下java环境依赖较强的开发任务就不要采取该方式,比如在开发中的java web任务,hadoop任务,Android任务等等。因为cuda套件nvvp对gcc和java的路径读取并不是优先读取系统路径下的,而是优先读取自身路径下的,比如本机cuda的安装路径为/usr/local/cuda-11.3,那么nvvp的安装路径为/usr/local/cuda-11.3/libnvvp,因此nvvp优先读取自身路径下的java路径为/usr/local/cuda-11.3/libnvvp/jre/bin/java,也就是说你可以在系统中手动安装java8的jre到用户空间下,然后在为路径/usr/local/cuda-11.3/libnvvp/jre/bin/java设置软链接到用户空间下的java,这里就不做这方面的演示了。

 

 

 

 

本机解决方法为:

在系统路径下安装java8:

sudo apt install openjdk-8-jre-headless

 

 

 

 

 

 

 

 

 

 

==================================================

 

 

参考:

https://askubuntu.com/questions/871462/java-eclipse-issue-unable-to-make-protected-void-java-net-urlclassloader-addu

https://github.com/lucko/helper/issues/98

 

标签:java,eclipse,module,base,org,net
From: https://www.cnblogs.com/devilmaycry812839668/p/16864885.html

相关文章

  • ASP.NET Core教程-Configuration(配置)- Cache(缓存)
    更新记录转载请注明出处:2022年11月7日发布。2022年11月5日从笔记迁移到博客。缓存缓存的概念缓存(Caching)是系统优化中简单又有效的工具,投入小收效大。数据库中......
  • Ubuntu系统中CUDA套件nvvp启动后报错Failed to load module "canberra-gtk-module"
    最近在看cuda方面的内容,需要对cuda代码做一些性能分析,于是需要使用nvvp,但是启动nvvp后报错:Failedtoloadmodule"canberra-gtk-module" 详细报错信息:Gtk-Message:23......
  • Java基础
    jdk在oracle官网下载,免费注册就可下载 001二进制转换    002计算机存储 1Byte=8bit  1KB=1024Byte  1MB=1024KB 1GB=1024MB 1TB=102......
  • 基于 .NET 7 的 QUIC 实现 Echo 服务
    前言随着今年6月份的HTTP/3协议的正式发布,它背后的网络传输协议QUIC,凭借其高效的传输效率和多路并发的能力,也大概率会取代我们熟悉的使用了几十年的TCP,成为互联网的......
  • Java函数式编程(2):流式计算
    您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ Lambda表达式虽然将接口作为代码块赋值给了变量,但如果仅仅只是Lambda表达式,还无法让Java由量变引起质变。真正让Lambda......
  • java创建文件对象相关构造器和方法
     1、什么是文件?文件是我们保存数据的地方。2、文件流文件在程序中是以流的形式来操作的。流:数据在数据源(文件)和程序(内存)之间经历的路径输入流:数据从数据源(文件)......
  • Java 日志框架学习笔记
    日志概念1.日志文件日志文件是用于记录系统操作事件的文件集合1.1调试日志1.2系统日志系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生......
  • java多线程生产者消费者线程并发协作测试心得
    图11-17生产者消费者示意图产品classChicken{intid;publicChicken(intid){this.id=id;}}缓冲区(装产品)classContainer{//定......
  • 3184-2020-Java-国赛-4-2
    这个题有点意思,是解一个二元一次方程,手算很简单,但是怎么用算法来解还真没想过,一下子好像也没什么思路importjava.util.*;importjava.io.*;classMain{publics......
  • ASP.NET Core 集成 Elastic APM 实现链路追踪
    ElasticAPM部署访问ElasticAPM由四个基本组件构成:APMAgents:各个语言的客户端程序,一系列开源库,用于连接APMServerAPMServerElasticsearchKibanaAPMServer......