Schlagwort-Archive: Mac

JavaFX Mac-App erstellen mit Eclipse und Maven

… mit OpenJDK und JavaFX in der Version 14.

JavaFX braucht nicht extra installiert werden, wenn man ein neues Maven-Projekt über den Archetyp org.openjfx aus Maven Central erstellt. Um die Dependencies kümmert sich Maven.

In der pom.xml den Pfad zum jlinkExecutable einstellen sowie einen Launcher festlegen:

<plugin>
  <groupId>org.openjfx</groupId>
  <artifactId>javafx-maven-plugin</artifactId>
  <version>0.0.4</version>
  <configuration>
    <mainClass>package.App</mainClass>
    <jlinkExecutable>/Pfad/zu/jlink</jlinkExecutable>
    <launcher>MeinLauncherSkript</launcher>
  </configuration>
</plugin>

Dann aus Eclipse die pom ausführen als Maven build… und bei Goals javafx:jlink einstellen.

Es wird im target-Verzeichnis ein Verzeichnis image erzeugt, dass u.a. die angepasste Java Runtime sowie ein Launcher-Skript enthält. Vom Terminal aus kann das Launcher-Skript jetzt schon gestartet werden.

Um ein schönes .app-Bundle zu erzeugen, im Terminal ins target-Verzeichnis wechseln und dann:

jpackage --type app-image -i image -n MeineApp -m mein.modul/mein.package.Mainclass --runtime-image image/

Wenn jpackage nicht gefunden wird, muss der Pfad noch händisch gesetzt werden. jpackage liegt ganz normal im bin-Verzeichnis des JDK.

Natürlich sind jeweils die richtigen Namen für die Module, Packages und Klassen einzusetzen. Es kommt dann eine schöne Mac-Application raus, die sich durch Doppelklick starten lässt. (Ich bin mir nicht sicher, ob XCode dafür installiert sein muss, damit das Packagen funktioniert. Bei mir war’s drauf.) Ist dann halt > 100 MB, aber egal. :-]

@ oder die rechte und die linke Hand des Teufels

Normalerweise ist es auch bei einer Mac-Tastatur völlig egal, ob man die linke oder die rechte alt-Taste (beim Mac auch option-Taste) verwendet.

Böse Falle: Hat man ein Ubuntu-Linux in Parallels laufen, wird die linke alt-Taste das Menü der jeweiligen Anwendung öffnen, nur mit der rechten alt-Taste kann man zum Beispiel das @-Symbol (alt+L) eingeben.

Aber Vorsicht: Während das bei der internen Tastatur eines MacBook gilt, sieht es bei externen Tastaturen schon wieder anders aus und es kann sein, dass es dort genau andersherum ist…

MySQL auf dem Mac: Systemdatenbank weg?

Heute wurde ich im Datenbanken-Praktikum auf dem Rechner eines Studenten mit einer MySQL-Installation konfrontiert, deren System-Datenbank (d.h. die Datenbank „mysql“) einfach mal verschwunden war. Diese Datenbank enthält unter anderem die Einstellungen für die Berechtigungen der Benutzer. Das ist recht ungünstig, denn der Server startet dann natürlich auch nicht mehr. Dass die fehlende System-Datenbank dafür der Grund ist, erfährt man nur durch Anschauen der Error-Logs, die im „data“-Verzeichnis der Installation (auf dem Mac normalerweise /usr/local/mysql/data) liegen. In diesem Verzeichnis fehlt dann auch das Unterverzeichnis „mysql“.

Als einfachster Weg, die Installation wieder zum Laufen zu bekommen und evtl. vorhandene Nutzdaten zu retten, erwies sich folgender:

  1. Das data-Verzeichnis umbenennen
  2. MySQL neu initialisieren, ab Version 5.7.6 mit:
    sudo mysqld_safe --initialize
  3. Wenn hier ein von der Intialisierung zufällig gesetztes root-Passwort angezeigt wird, so ist das unbedingt zu notieren. Es muss dann, wie bei einer Neuinstallation auch, beim ersten normalen Login geändert werden. Sollte zwar ein Passwort zufällig gesetzt, aber nicht angezeigt werden (war merkwürdigerweise bei mir so), muss evtl. anschließend die Prozedur zum Zurücksetzen des Passworts durchgeführt werden.
  4. Durch die Neuinitialisierung wurde ein neues data-Verzeichnis angelegt. Der Inhalt des alten data-Verzeichnisses kann nun ins neue kopiert werden.
  5. Der Server sollte sich jetzt wieder normal starten lassen.

Wenn der Rest des data-Verzeichnisses unbeschädigt war und wirklich nur die mysql-Datenbank gefehlt hat, sollten die anderen Datenbanken wieder in Ordnung sein.

MySQL auf dem Mac: FAQs

Die Systemvariable PATH setzen

Will man am Terminal nicht jedes Mal den vollständigen Pfad angeben, wenn man den MySQL-Client startet, muss man die Systemvariable PATH setzen. Dies geht, wenn man in der Datei „.profile“ (man beachte den Punkt am Anfang!) die Zeile „export PATH=/usr/local/mysql/bin:$PATH“ einfügt. Dies geht am Terminal am einfachsten mit folgendem Befehl:

echo "export PATH=/usr/local/mysql/bin:$PATH" >> .profile

Anschließend das Terminal komplett schließen und neu starten, damit die Änderung aktiv wird.

Einen Dump einer Datenbank erstellen

Eigentlich total easy. Im Terminal eingeben:

mysqldump -u root -p NameDerDatenbank > NameDerDatei.sql

Man muss natürlich nicht unbedingt den root-User benutzen, wenn man auch andere Datenbank-User mit den passenden Berechtigungen hat. Wenn für den Benutzer kein Passwort vergeben wurde, muss man das „-p“ weglassen.

Das root-Passwort von MySQL zurücksetzen

Weil es bei meinen Datenbank-Studierenden immer mal wieder nötig ist:

  1. MySQL-Server stoppen
  2. Terminal öffnen
  3. Folgende Befehle eingeben, um den MySQL-Server neu zu starten mit der Option, sämtliche Zugriffsrechte zu ignorieren. Dies benötigt die Eingabe des Mac-Admin-Passworts.
    sudo mysqld_safe --skip-grant-tables
  4. Ein zweites Terminal öffnen und mysql starten. Einloggen bei MySQL als root braucht nun kein Passwort mehr!
    mysql -u root
  5. An der MySQL-Befehlszeile:
    mysql> flush privileges;
    Query OK, 0 rows affected (0,01 sec)
    
    mysql> alter user 'root'@'localhost' identified by '';
    Query OK, 0 rows affected (0,00 sec)
    
    mysql> flush privileges;
    Query OK, 0 rows affected (0,00 sec)
    
    mysql> quit
    Bye

    Das Passwort ist nun zurückgesetzt. Es kann natürlich in den Anführungszeichen bei „identified by“ statt einem leeren Passwort ein neues Passwort eingesetzt werden.

  6. Wieder am Terminal sollte man nun den MySQL-Server, der mit „–skip-grant-tables“ gestartet wurde, wieder beenden:
    sudo killall mysqld
  7. Dann über die Systemeinstellungen den MySQL-Server wieder normal starten.
  8. Fertig!

Nach macOS-Update: Rechner herunterfahren dauert ewig?

Wenn nach einem Update des Betriebssystems der Rechner ewig zum Herunterfahren braucht, könnte das daran liegen, dass beim Update-Prozess manchmal (?) die Rechte des mysql-Verzeichnisses verstellt werden. Dann kann man folgendes tun:

  1. Das „data“-Verzeichnis aus dem MySQL-Verzeichnis (normalerweise /usr/local/mysql) an einen sicheren Ort kopieren.
  2. MySQL neu installieren. Das ist wohl der einfachste Weg, um die Rechte wieder korrekt zu bekommen.
  3. Das gesicherte data-Verzeichnis wieder an die selbe Stelle in das MySQL-Verzeichnis der Neuinstallation kopieren.