Wissen

... statt vermuten

abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 

Aufsteiger
  • Community Junior
  • Community Junior
  • Community Beobachter
Beiträge: 3
Registriert: 17.01.2019

Guten Abend Zusammen,

 

ich habe mir vor zwei Monaten einen neuen Mac mit M1 Chicp gekauft. Bis Anfang der Woche habe ich noch mein altes MacBook für den ActiveTrader verwendet, wollte aber nun auf den neuen Umsteigen. 

 

Nun gibt es folgendes Problem, wie ich aus dem Forum herauslese benötige ich für den ActiveTrader eine Oracle JRE in Version 8. 

 

Wie es scheint gibt es für den M1 Mac (ARM) jedoch keine JRE von Oracle in der Version 8. Nur eine X86_64 Version. Mir ist bewusst, dass dies via Rosetta generell kein Problem darstellt, ich würde diesen Umweg jedoch gerne vermeiden. 


Hat schon jemand geschafft den ActiveTrader auf einem M1 Mac, ohne Rosetta, zum laufen bekommen?

 

0 Likes
4 ANTWORTEN 4

Autorität
Beiträge: 4149
Registriert: 06.02.2015

@AugustinMario 

Laut einem Artikel bei Heise hat die Firma Azul Zulu eine Java-Version für Systeme mit Apple Silicon veröffentlicht. Ob der AT darauf problemlos läuft oder nicht, müsste man ausprobieren.

 


Aufsteiger
  • Community Junior
  • Community Junior
  • Community Beobachter
Beiträge: 3
Registriert: 17.01.2019

Vielen Dank für den Tipp, leider scheint der AT nicht mit der Azul jre8 kompatibel zu sein. Ich bekomme beim Start einen JRE Fehler.

0 Likes

Aufsteiger
  • Community Junior
  • Community Junior
  • Community Beobachter
Beiträge: 3
Registriert: 17.01.2019

Habe es "sporadisch" über openwebstart zum Laufen bekommen.

 

Manchmal geht es durch, manchmal bleibt es bei "Logindaten Senden" hängen.

 

0 Likes

Regelmäßiger Autor
  • Community Junior
  • Community Junior
  • Community Junior
  • Community Junior
  • Community Beobachter
Beiträge: 21
Registriert: 05.02.2016

Hallo, 

ich habe mir das Ganze mal angeschaut, da ich gerade vor dem gleichen Problem stand (neuer M1 Mac mit Monterey). Bei der Gelegenheit habe ich gleich noch auf einem 2020 Intel MacBook (mit aktuellem Java 17, und Big Sur) das Ganze erstmalig aufgesetzt, daher kann ich das beides hier mal kurz zusammenfassen und erläutern. 

 

Symptom (M1 oder Intel): nach der Installation kann man das Icon in den Applications anklicken und es passiert dann nichts weiter.  Man erkennt, woran das liegt, wenn man das versucht aus der Shell zu starten: Im Verzeichnis

 /Applications/ActiveTraderDE.app/Contents/MacOS

  den

JavaAppLauncher 

starten. 

Da kommen dann viele Fehlermeldungen, weil die aktuellen Java-Distributionen notwendige Klassen nicht enthalten (bei mir bspw. OpenJDK 17 hat gewisse, erwartete GUI-Klassen nicht). Ich habe nicht systematisch ausprobiert, wie weit zurück es noch geht, aber Java8 funktioniert. Auf dem Intel-Mac habe ich mit

brew openjdk@8 

 installiert, aber das existiert, wie im Thread erwähnt nicht für M1. 

Für M1 gibt es Java8 von Azul (https://www.azul.com/). Ich setze generell darauf möglichst viel mit brew zu verwalten, um das zu automatisieren. Also wer es über brew installieren möchte (für M1):

brew tap homebrew/cask-versions 
brew install zulu8

(warum die Azul-version als Zulu läuft, weiß ich nicht, aber so weist es die Doku aus.)

Danach am Besten über

 /usr/libexec/java_home -V

die installierten Java-Versionen kontrollieren, evtl. müssen noch links gesetzt werden (bspw. für openjdk). Darauf wird aber bei der Brew-Installation hingewiesen.

Das nächste Problem (in beiden Fällen: M1 und Intel) wartet: man hat jetzt mehrere Java-Versionen von denen die neueste Java-version (die automatisch verwendet wird) die notwendigen Klassen nicht enthält. Man kann nun mittels verschiedener Tricks versuchen (jenv,  manipulation der plist-files, usw.) dass immer als Default Java8 verwendet wird, was aber eigentlich auch veraltet ist. Daher habe ich mich entschieden das so zu machen, dass es spezifisch nur für den Activetrader verwendet wird. 

Der einfachste Weg ist, man manipuliert den Java-App launcher (s.o.) und ergänzt ganz zu Beginn (nach den Kommentaren) die Zeile:

export JAVA_HOME=`/usr/libexec/java_home -v1.8`

Danach sollte das auf einer Intelmaschine problemlos starten. Dies hat aber den Nachteil, dass der JavaApplauncher bei einem Update eventuell wieder überschrieben wird. 

Bei dem M1-Mac kommt als Problem hinzu: bei doppelklick wird gefragt ob Rosetta gestartet werden soll. - Ich habe jetzt nicht analysiert, wieso das passiert (denn für Bash-skripte und Java für Arm wird kein Rosetta benötigt, aber wollte das nicht dafür installieren und nicht so viel Zeit investieren). Daher habe ich für M1 einen einfachen Starter gemacht, der direkt den Applauncher aufruft. 

 

#!/bin/bash
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
cd /Applications/ActiveTraderDE.app/Contents/MacOS
./JavaAppLauncher &
exit 0

 

Diese Version wäre auch auf dem Intel-Mac einsetzbar und hat den Vorteil, dass sie bei einer Neuinstallation/Update des Activetrader weiter lauffähig ist, so lange die Grundkonstruktion des AT nicht verändert wird.  (Auf dem M1 kommt man so auch an dem Rosetta-Thema vorbei. Nachteil ist, dass man ein zusätzliches Programm braucht. Ich habe dem einen Script einen Namen gegeben, damit es vor dem normalen ActiveTrader in den Applications erscheint und habe ihm das gleiche Icon verpasst. (Es geht dann kurz beim Start ein Terminalfenster auf, aber man kann einstellen, dass dies bei fehlerfreiem Programmstart sich sofort wieder schließt. )

Optimal ist das natürlich nicht, aber im Moment bin ich damit glücklich. Ich hoffe, das hilft auch anderen!

 

Die Frage, die offen bleibt, ist: warum so kompliziert? Andere stellen Ihre Programme (bspw. TWS bei IB) auch so bereit, dass dies einfach installiert wird und fertig, weil sie ein Java8 selbst mitbringen. 
Damit müssen Leute, die normalerweise mit Java nichts am Hut haben, sich erst gar nicht um sowas kümmern. AT auf Mac ist aktuell nur nutzbar / installierbar für Leute, die ein Interesse an der Administration von Rechnern haben und keine Hürde in Shell-arbeit sehen. (Eine kleine Teilmenge der Mac-Nutzer)

Witzigerweise sieht der genutzte JavaAppLauncher (der selbst reinkopierter Fremdcode ist), sogar so was vor, ebenso wie das Filtern nach bestimmten Java-Versionen. Warum diese Fähigkeiten nicht genutzt werden, wird wohl genau so ein Rätsel bleiben, wie die Frage warum der ActiveTrader keine vernünftigen Fehlermeldungen gibt, wenn er kein Java findet oder so. Alles in allem hat mich das Ganze dadurch einige Stunden Zeit gekostet und wie man im Forum sieht, bin ich ja nicht der Einzige. 

Antworten