Как исправить java.lang.ClassNotFoundException: com.sun.tools.attach.VirtualMachine в Java 21JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как исправить java.lang.ClassNotFoundException: com.sun.tools.attach.VirtualMachine в Java 21

Сообщение Anonymous »

У меня есть проект Clojure с deps.edn, который использует библиотеку clj-async-profiler
Моя основная функция в проекте содержит приведенный ниже код -

Код: Выделить всё

(ns com.myns.cli
(:gen-class)
(:require
[clj-async-profiler.core :as profiler]
[clj-async-profiler.ui :as profiler.ui]))

(set! *warn-on-reflection* true)

(defn -main [& args]
(profiler/serve-ui 8074)
(.addShutdownHook (Runtime/getRuntime) (Thread.  ^Runnable profiler.ui/stop-server))
;;(run config-file))
Java-приложение запускается командой java -XX:+UnlockDiagnosticVMOptions -XX:+DebugNonSafepoints --add-opens java.base/jdk.internal.misc=ALL-UNNAMED -- add-opens java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/jdk.attach=ALL-UNNAMED -Djdk.attach.allowAttachSelf -cp myapp.jar

Код: Выделить всё

  WARNING: package jdk.attach not in java.base
Exception in thread "main" java.lang.ExceptionInInitializerError
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Unknown Source)
at java.base/java.lang.Class.forName(Unknown Source)
at clojure.lang.RT.classForName(RT.java:2209)
at clojure.lang.RT.classForName(RT.java:2218)
at clojure.lang.RT.loadClassForName(RT.java:2237)
at clojure.lang.RT.load(RT.java:449)
at clojure.lang.RT.load(RT.java:424)
at clojure.core$load$fn__6908.invoke(core.clj:6162)
at clojure.core$load.invokeStatic(core.clj:6161)
at clojure.core$load.doInvoke(core.clj:6145)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clj_async_profiler.core__init.load(Unknown Source)
at clj_async_profiler.core__init.(Unknown Source)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Unknown Source)
at java.base/java.lang.Class.forName(Unknown Source)
at clojure.lang.RT.classForName(RT.java:2209)
at clojure.lang.RT.classForName(RT.java:2218)
at clojure.lang.RT.loadClassForName(RT.java:2237)
at clojure.lang.RT.load(RT.java:449)
at clojure.lang.RT.load(RT.java:424)
at clojure.core$load$fn__6908.invoke(core.clj:6162)
at clojure.core$load.invokeStatic(core.clj:6161)
at clojure.core$load.doInvoke(core.clj:6145)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invokeStatic(core.clj:5934)
at clojure.core$load_one.invoke(core.clj:5929)
at clojure.core$load_lib$fn__6850.invoke(core.clj:5976)
at clojure.core$load_lib.invokeStatic(core.clj:5975)
at clojure.core$load_lib.doInvoke(core.clj:5954)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$load_libs.invokeStatic(core.clj:6017)
at clojure.core$load_libs.doInvoke(core.clj:6001)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$require.invokeStatic(core.clj:6039)
at identity_check.cli$loading__6789__auto____149.invoke(cli.clj:1)
at identity_check.cli__init.load(Unknown Source)
at identity_check.cli__init.(Unknown Source)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Unknown Source)
at java.base/java.lang.Class.forName(Unknown Source)
at clojure.lang.RT.classForName(RT.java:2209)
at clojure.lang.RT.classForName(RT.java:2218)
at clojure.lang.RT.loadClassForName(RT.java:2237)
at clojure.lang.RT.load(RT.java:449)
at clojure.lang.RT.load(RT.java:424)
at clojure.core$load$fn__6908.invoke(core.clj:6162)
at clojure.core$load.invokeStatic(core.clj:6161)
at clojure.core$load.doInvoke(core.clj:6145)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.lang.Var.invoke(Var.java:384)
at clojure.lang.Util.loadWithClass(Util.java:251)
at com.myns.cli.(Unknown Source)
Caused by: java.lang.ClassNotFoundException: com.sun.tools.attach.VirtualMachine
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Unknown Source)
at java.base/java.lang.Class.forName(Unknown Source)
at clojure.lang.RT.classForName(RT.java:2209)
at clojure.lang.RT.classForNameNonLoading(RT.java:2222)
at clj_async_profiler.util.jdk11__init.load(Unknown Source)
at clj_async_profiler.util.jdk11__init.(Unknown Source)
... 56 more

Как исправить эту ошибку?
Я вижу, что модуль jdk.attach принадлежит java.base в документации Java. Почему я получаю предупреждение ПРЕДУПРЕЖДЕНИЕ: пакет jdk.attach отсутствует в java.base в консоли?
Примечание:
Ниже приведены подробности версии Java -

Код: Выделить всё

java --version
openjdk 21.0.3 2024-04-16 LTS
OpenJDK Runtime Environment Temurin-21.0.3+9 (build 21.0.3+9-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.3+9 (build 21.0.3+9-LTS, mixed mode, sharing)
Также команда --list-modules возвращает -

Код: Выделить всё

$java --list-modules
java.base@21.0.3
java.compiler@21.0.3
java.datatransfer@21.0.3
java.desktop@21.0.3
java.instrument@21.0.3
java.logging@21.0.3
java.management@21.0.3
java.management.rmi@21.0.3
java.naming@21.0.3
java.net.http@21.0.3
java.prefs@21.0.3
java.rmi@21.0.3
java.scripting@21.0.3
java.se@21.0.3
java.security.jgss@21.0.3
java.security.sasl@21.0.3
java.smartcardio@21.0.3
java.sql@21.0.3
java.sql.rowset@21.0.3
java.transaction.xa@21.0.3
java.xml@21.0.3
java.xml.crypto@21.0.3
jdk.accessibility@21.0.3
jdk.charsets@21.0.3
jdk.crypto.cryptoki@21.0.3
jdk.crypto.ec@21.0.3
jdk.dynalink@21.0.3
jdk.httpserver@21.0.3
jdk.incubator.vector@21.0.3
jdk.internal.vm.ci@21.0.3
jdk.internal.vm.compiler@21.0.3
jdk.internal.vm.compiler.management@21.0.3
jdk.jdwp.agent@21.0.3
jdk.jfr@21.0.3
jdk.jsobject@21.0.3
jdk.localedata@21.0.3
jdk.management@21.0.3
jdk.management.agent@21.0.3
jdk.management.jfr@21.0.3
jdk.naming.dns@21.0.3
jdk.naming.rmi@21.0.3
jdk.net@21.0.3
jdk.nio.mapmode@21.0.3
jdk.sctp@21.0.3
jdk.security.auth@21.0.3
jdk.security.jgss@21.0.3
jdk.unsupported@21.0.3
jdk.xml.dom@21.0.3
jdk.zipfs@21.0.3
Кроме того, я использую образ docker eclipse-temurin:21-jre-jammy, если это помогает


Подробнее здесь: https://stackoverflow.com/questions/787 ... ualmachine
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как исправить java.lang.ClassNotFoundException: com.sun.tools.attach.VirtualMachine в Java 21
    Anonymous » » в форуме JAVA
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Java.lang.UnsatisfiedLinkError: sun.tools.attach.BsdVirtualMachine.createAttachFile
    Anonymous » » в форуме JAVA
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Com.sun.tools.attach.AgentLoadException: 102 при подключении
    Anonymous » » в форуме JAVA
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Com.sun.tools.attach.AgentLoadException: 102 (Java21)
    Anonymous » » в форуме JAVA
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Com.sun.tools.attach.AgentLoadException: 102 при подключении
    Anonymous » » в форуме JAVA
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»