Warum schlägt die Verwendung der Java Attach-API unter Linux fehl? (obwohl Maven Build abgeschlossen ist)

Ich habe die Java Attach API (Teil von tools.jar) verwendet, um eine Verbindung zu einem ausgeführten Java-Prozess herzustellen und ihn von innen herunterzufahren.

Es funktioniert perfekt unter Windows. Wenn ich jedoch versuche, den Attach-Code unter Linux tatsächlich auszuführen, erhalte ich einejava.lang.NoClassDefFoundError mit dem folgenden Stack-Trace für die Ursache ...

java.lang.ClassNotFoundException:com.sun.tools.attach.VirtualMachine...
    java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    java.security.AccessController.doPrivileged(Native Method)
    java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    java.lang.ClassLoader.loadClass(ClassLoader.java:247)

Ich benutze Maven und bis jetzt habe ich diesen Abschnitt, um tools.jar einzuschließen.

<dependency>
    <groupId>com.sun</groupId>
    <artifactId>tools</artifactId>
    <version>1.4.2</version>
    <scope>system</scope>
    <systemPath>${java.home}/../lib/tools.jar</systemPath>
</dependency>

Vor allem das $ {java.home} wertet das jre aus, aber auch wenn ich es in einen direkten Pfad zum jdk ändere, ist das Problem dasselbe.

Ich bin ziemlich ratlos ...

Antworten auf die Frage(1)

Ihre Antwort auf die Frage