--enable-native-access

piha.gi

Mitglied
Guten Tag!
Leider kann ich mein Anfänger-Problem ohne eure Hilfe nicht lösen.
Ich benutze Java-Editor 21.01.01 von Gerhard Röhner um erstellen einer GUI-Anwendung.
Zur seriellen Kommunikation mit einem Arduino Board habe ich eine Bibliothek eingebunden.
Java:
import com.fazecast.jSerialComm.*;
Ich erhalte folgende Warnung:
"WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module"
... und
"Restricted methods will be blocked in a future release unless native access is enabled"
Ich bekomme es nicht hin, native access zu enablen.
Kann jemand helfen?
Danke Pit
 

Oneixee5

Top Contributor
Während der Entwicklung kannst du das einfach ignorieren. Es handelt sich um eine Warnung. Das Problem besteht weiter, wenn du die Warnung ausschaltest.
Wenn du deine Software weitergibst, dann kannst du:
Enable-Native-Access: ALL-UNNAMED
in die Manifest-Datei einfügen. Normalerweise erstellt man seine Software mit Maven. Dazu ein Beispiel:
XML:
// ...
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-jar-plugin</artifactId>
      <version>3.4.0</version>
      <configuration>
        <archive>
          <manifestEntries>
            <Enable-Native-Access>ALL-UNNAMED</Enable-Native-Access>
          </manifestEntries>
        </archive>
      </configuration>
    </plugin>
    <!-- ...weitere Plugins... -->
  </plugins>
</build>
// ...
 
Zuletzt bearbeitet:

piha.gi

Mitglied
Ich danke für die schnelle Antwort.
Bevor die mir etwas hilft, muss ich noch viel lernen. Ivh habe keine Manifestdatei und nutze nich Maven. Sorry.
Vielleicht gibt es ja noch weitere Tips.
Ciao Pit
 

M.L.

Top Contributor
Java-Editor ...native access zu enablen
Zitiert lt. Google Gemini: "(..)
Sie müssen diese Option in den Ausführungseinstellungen des Java-Editors eintragen:

  1. Öffnen Sie die Einstellungen im Java-Editor:
    • Gehen Sie im Menü des Java-Editors zu "Einstellungen" oder "Optionen".
    • Suchen Sie dort nach einem Reiter oder Bereich, der sich mit "Ausführen", "Compiler-Optionen", "Laufzeitumgebung" oder "JVM-Parameter" beschäftigt.
  2. Fügen Sie das JVM-Argument hinzu:
    • Suchen Sie nach einem Textfeld, das für "Zusätzliche JVM-Parameter" oder "Kommandozeilenoptionen (Run)" vorgesehen ist.
    • Fügen Sie dort genau die folgende Option ein:
      --enable-native-access=ALL-UNNAMED

    • Bestätigen und speichern Sie die Einstellungen.
  3. Programm erneut ausführen:
    • Führen Sie Ihr Java-Programm im Java-Editor erneut aus. Die Warnung sollte nun nicht mehr erscheinen. (..)"
 

White_Fox

Top Contributor
In jeder halbwegs brauchbaren IDE (z.B. in Netbeans oder VSCode) gibt es auch Einstellungen, um die JVM mit bestimmten Zusatzparametern zu starten. Da kann das auch rein.

Auch wenn man die Warnung ignorieren kann...es ist schon gut, vorher zu fragen und zu wissen, bevor man einfach drauflosignoriert.
 

piha.gi

Mitglied
Vielen Dank für alle Tips.
@White_Fox: OK, VSCode kann ich benutzen.
Ist es zu unverschämt, wenn ich Dich bitte mir zu sagen wie ich dort die JVM mit --enable-native-access=ALL-UNNAMED starten kann?
Danke im Voraus, ciao Pit
 

KonradN

Super-Moderator
Mitarbeiter
Vielen Dank für alle Tips.
@White_Fox: OK, VSCode kann ich benutzen.
Ist es zu unverschämt, wenn ich Dich bitte mir zu sagen wie ich dort die JVM mit --enable-native-access=ALL-UNNAMED starten kann?
Danke im Voraus, ciao Pit
Mein Tipp wäre, zusätzlich auch noch Maven anzusehen. Das macht vieles deutlich einfacher und wenn man etwas braucht, dann kann man meist Lösungen per Copy & Paste einbauen. Und wenn es um Anpassungen geht: Du kannst einfach die pom.xml weiter geben (z.B. an uns) und dann sieht man direkt den Aufbau und kann dann auch entsprechend einfach Anpassungen vorschlagen.

Statt VSCode würde ich Anfängern eher IntelliJ (Community Edition) Empfehlen. Das ist deutlich freundlicher für Anfänger.

Aber in VSCode kannst Du sagen:

Run -> Add Configuration. (So Du noch keine launch.json in Deinem Projekt hast, ansonsten wäre es Run -> Open Configuration)

Da öffnet sich dann im Editor etwas wie:
JSON:
{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "java",
            "name": "Current File",
            "request": "launch",
            "mainClass": "${file}"
        },
        {
            "type": "java",
            "name": "JavaApp",
            "request": "launch",
            "mainClass": "de.kneitzel.JavaApp",
            "projectName": "javamavenapp"
        }
    ]
}


Das Element, dass Du da hinzu fügen musst, ist dann "vmargs" - das kann dann also so aussehen:
JSON:
{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "java",
            "name": "Current File",
            "request": "launch",
            "vmargs": "--enable-native-access=ALL-UNNAMED",
            "mainClass": "${file}"
        },
        {
            "type": "java",
            "name": "JavaApp",
            "request": "launch",
            "vmargs": "--enable-native-access=ALL-UNNAMED",
            "mainClass": "de.kneitzel.JavaApp",
            "projectName": "javamavenapp"
        }
    ]
}


Die anderen Felder können bei Dir natürlich abweichen ...


In IntelliJ hast Du einfach die Run Configuratios. Da hast Du dann eine UI, in der Du vmOptions direkt eintragen kannst. Da hast Du in der Symbolleiste neben dem grünen Dreieck Symbol (Run) ein Dropdown in dem Du "Edit Configurations..." auswählen kannst um ein Dialog zur Konfiguration zu bekommen.

Edit: Da fehlte hinter vmargs das Anführungszeichen!
 
Zuletzt bearbeitet:

KonradN

Super-Moderator
Mitarbeiter
Viel Spass und Erfolg. Und ich muss noch kurz editieren - hatte nach dem posten nicht mehr geschaut und die farbliche Darstellung zeigte ja direkt, dass da ein " hinter vmargs fehlte. Habe ich jetzt noch editiert.

Also bei JSON den key in " setzen und dann auch den Wert. Und wenn ich so einen generellen Hinweis zu JSON gebe, dann noch die kurze Beschreibung von JSON. Die anderen verwendeten Elemente wären dann noch:
  • [ ... ] die eckigen Klammern umfassen ein Array (bzw. Liste)
  • { ... } beschreibt ein Objekt mit mehreren Werten.
  • Werte/Einträge werden mit Komma getrennt.
Das ist eigentlich schon fast alles rund um JSON so dass launch.json ein Objekt in JSON enthält. Dieses hat einen Wert version und einen Wert configurations. letzteres ist ein Array aus Objekten und da sind dann zwei Objekte enthalten mit jeweils mehreren Werten.
 

White_Fox

Top Contributor
Vielen Dank für alle Tips.
@White_Fox: OK, VSCode kann ich benutzen.
Ist es zu unverschämt, wenn ich Dich bitte mir zu sagen wie ich dort die JVM mit --enable-native-access=ALL-UNNAMED starten kann?
Danke im Voraus, ciao Pit
Das weiß ich, ehrlich gesagt, nicht genau. Ich würde aber mal in den Projekteinstellungen schauen, ob du da irgendetwas findest, das nach "start with args..." aussieht oder so, mit einem Textfeld um Argumente einzutragen.

Oder du ziehst dein Projekt mit Maven auf, wie Konrad es dir schon vorgeschlagen hat. Als – mächtigere – Alternative zu Maven kannst du auch Gradle benutzen.
Zu Gradle oder Maven würde ich dir auch raten, das hat viele Vorteile. Ein Vorteil wäre, daß du keinerlei Streß hast wenn du dein Projekt an einem anderen Rechner oder mit einer anderen IDE bearbeiten willst. Anderer Rechner oder andere IDE bedeutet immer viel Arbeit: Bibliotheken nachinstallieren, Konfiguration (wie eben z.B. --enable-native-access=ALL-UNNAMED-Startargument) anpassen, und so weiter.

In Gradle oder Maven trägst du diesen Kram einmal ein, und hast danach Ruhe davon. Sehr hilfreich ist das vor allem dann, wenn man seinen eigenen Rechner gegen einen neuen austauscht.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
U Classpath Eclipse Native mitexportieren? Java Basics - Anfänger-Themen 2
I Erste Schritte Native code library failed to load beim Ausführen eines Beispiels Java Basics - Anfänger-Themen 5
S JNA - Java Native Access - wie ? Java Basics - Anfänger-Themen 2
D native Methoden, Verwendung? Java Basics - Anfänger-Themen 8
G Erste Schritte Native DLL (NativeBass.dll) einbinden (eclipse) Java Basics - Anfänger-Themen 2
A gcj Native Code compile Fehler Java Basics - Anfänger-Themen 5
F Java Native Interface alternative Java Basics - Anfänger-Themen 4
D Programmabbruch bei Aufruf von Native Code Java Basics - Anfänger-Themen 3
G Was ist native? Java Basics - Anfänger-Themen 2
josfe1234 Hilfe access denied ("java.io.FilePermission" " " "read") Java Basics - Anfänger-Themen 12
M Access Modifier oder so ähnlich Java Basics - Anfänger-Themen 6
N DB Access conection Java Basics - Anfänger-Themen 6
T Access mit Java verbinden im netzwerk Java Basics - Anfänger-Themen 3
E To count password and username access possibility Java Basics - Anfänger-Themen 0
M Access restriction Problem, obwohl library eingebunden ist Java Basics - Anfänger-Themen 0
M Erste Schritte Java Applet - HTML Seiten auslesen und in Access Datenbank schreiben? Java Basics - Anfänger-Themen 15
Z Access Control Exception Java Basics - Anfänger-Themen 10
M Erste Schritte Java programm unable to access Java Basics - Anfänger-Themen 10
S java.security.AccessControlException: access denied Java Basics - Anfänger-Themen 4
H NEtBeans: Fehler: XXX has private access... Java Basics - Anfänger-Themen 2
T access modifiers Java Basics - Anfänger-Themen 4
D Access Abfrage - Results direkt als Array erhalten Java Basics - Anfänger-Themen 2
T java.security.AccessControlException: access denied (java.net.SocketPermission Java Basics - Anfänger-Themen 2
C Package einbinden - "cannot access" Java Basics - Anfänger-Themen 5
J Access-Verbindung Java Basics - Anfänger-Themen 2
W OOP Datum aus Access in Textfeld schreiben ohne Stunden/Minuten/Sekunden Java Basics - Anfänger-Themen 2
neurox Was heißt: Access restriction ... ? Java Basics - Anfänger-Themen 3
A Access restriction / gl4java Java Basics - Anfänger-Themen 3
hdi NPE (access$1) Java Basics - Anfänger-Themen 6
R DerbyDB nach MS Access kopieren Java Basics - Anfänger-Themen 41
S access denied (java.io.FilePermission read) Java Basics - Anfänger-Themen 3
M Access to HSQLDB Converter Java Basics - Anfänger-Themen 2
D Anfängerfrage N. Office Access NOA: setHidden und dann . Java Basics - Anfänger-Themen 2
T Brauche Hilfe: Access DB + Hashmap Java Basics - Anfänger-Themen 2
M Data Access Object - Beispiel Java Basics - Anfänger-Themen 11
B access denied Java Basics - Anfänger-Themen 7
H . cannot access Person Java Basics - Anfänger-Themen 5
V Änderungsdatum aus einer Access File auslesen Java Basics - Anfänger-Themen 5
S Maske wie in Access Java Basics - Anfänger-Themen 8
N Applet - Datenbankzugrriff - SocketPermission Access denied Java Basics - Anfänger-Themen 2
D Dateizugriff - An bestimmter Position Lesen (Random Access) Java Basics - Anfänger-Themen 2
J java und jdbc mit access Java Basics - Anfänger-Themen 3
T Access Datenbank in Java (Eclipse) einbinden Java Basics - Anfänger-Themen 10
G access static field Java Basics - Anfänger-Themen 2
D Random Access File: Letzte Zeile löschen Java Basics - Anfänger-Themen 2
D Random Access File: seek() Problem Java Basics - Anfänger-Themen 5
S Ursache dieser Fehlermeldung (access dinied) Java Basics - Anfänger-Themen 3
F Read access to enclosing field xy is emulated . Java Basics - Anfänger-Themen 2
S MS Access und JApplet Java Basics - Anfänger-Themen 12
F Access Datenbank-Tabelle erzeugen Java Basics - Anfänger-Themen 5
M Applet access denied Java Basics - Anfänger-Themen 4
U public, private, protected und "default access" - Java Basics - Anfänger-Themen 14
G ACCESS Anfall Java Basics - Anfänger-Themen 3
P Anleitung zum Data Access Object Pattern Java Basics - Anfänger-Themen 2
V Daten aus Access in eine Tabelle schreiben Java Basics - Anfänger-Themen 3
G Access Modifiers Java Basics - Anfänger-Themen 8
B Angabe import-Verzeichnis & Error704:cannot access direc Java Basics - Anfänger-Themen 6
R Access Datenbankabfrage Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben