Packages in IntelliJ IDEA (Xlets)

DameEdna

Neues Mitglied
Guten Morgen,

ich habe vor Kurzem damit begonnen, mir Java mithilfe von YT-Tutorials und Beiträgen auf Webseiten und in Foren beizubringen. Um ganz präzise zu sein: Es geht um Java in Verbindung mit (UHD-)Blu-rays (Xlets). Am besten lerne ich solche Dinge anhand von bereits vorhandenem Code. Daher habe ich den Java-Code einer Blu-ray in IntelliJ IDEA (Community Edition 2024.1) geladen. (Eines meiner Authoring-Programme bringt zudem Eclipse mit. Aber IntelliJ gefällt mir derzeit besser.) Ich erarbeite mir dann Schritt für Schritt die Funktionen des Codes. Das geht kreuz und quer. Denn sobald der Java-Code durch das Authoring-Programm läuft, werden alle Bezeichner entfernt und durch Buchstaben ersetzt. (Das geht sogar so weit, dass „do“ Verwendung findet, weil einfach von a bis z durchbenannt und dann mit aa, ab, ac etc. weitergemacht wird. Bei IntelliJ führt „do“ natürlich zu Irritationen. Warum auch immer es funktioniert, dass so eine Disc dennoch abgespielt wird.) Daher ist der Code ein einziges Rätsel. Erst recht für mich als Anfänger. :)
Durchschaue ich eine Sache, vergebe ich meine eigenen Bezeichnungen. Nur gut, dass IntelliJ die Zusammenhänge besser erkennt als ich. Denn sonst würde es wohl Ewigkeiten dauern. Wobei sich auch IntelliJ gelegentlich irrt, da manche Buchstabenkombinationen häufiger vorkommen, aber zu unterschiedlichen Funktionen gehören. Da muss man dann aufpassen.

Nun zu meiner Frage: Bei Xlets sind ja einige Dinge anders. Der Startpunkt ist ein bestimmter Code innerhalb einer Klasse. (Es gibt keine klassische Main-Methode.) Diese Klasse wird dann im Authoring-Programm hinterlegt, damit die Disc später weiß, wo sie starten soll. Dieser Code liegt meist in einem Package. (Ist jedenfalls bei meinem Authoring-Programm der Fall.) Dadurch, dass der Code in einem Package liegt, ist er von den restlichen Klassen außerhalb des Packages „isoliert“. Wenn ich das richtig verstanden habe, ist das auch richtig so.
Mein Problem ist nun, dass bei der Umbenennung von z. B. Klassen IntelliJ die Bezeichner in Packages ignoriert. Dasselbe gilt, wenn ich mich durch den Code klicke, um zu verstehen, wohin eine z. B. Methode oder Variable führt. Und natürlich frage ich mich, wie das bei der Ausführung des Codes funktioniert: Wie gelingt der Sprung aus dem Package zu einer anderen Klasse? (Im vorliegenden Code liegt die Start-Klasse in ihrem eigenen Package. Alle anderen Klassen liegen außerhalb oder in anderen Packages.)

Übrigens: Eine Blu-ray oder UHD-Blu-ray, welche auf Java basiert, nennt sich „BD-J“. In Abgrenzung zu einer HDMV-Blu-ray. HDMV ist der „klassische“ Code, welcher extra für Blu-rays entwickelt wurde. HDMV habe ich mir vor Jahren ebenfalls selbst beigebracht. Dabei handelt es sich allerdings um eine sehr rudimentäre Sprache. Also kein Vergleich mit Java. 🤣

Ich bedanke mich schon jetzt für Eure Antworten und Eure Geduld.

Lukas
 

mihe7

Top Contributor
Mein Problem ist nun, dass bei der Umbenennung von z. B. Klassen IntelliJ die Bezeichner in Packages ignoriert.
Was soll das bedeuten? Wenn Du eine Klasse a.b.c.X hast (also Klasse X im Package a.b.c) und X nach Y umbenennst, dann wird daraus a.b.c.Y (also Klasse Y im Package a.b.c).

Wie gelingt der Sprung aus dem Package zu einer anderen Klasse?
Jede Klasse hat einen eindeutigen Namen - den "vollqualifierte Bezeichner" (FQN - Fully Qualified Name). Der besteht aus den Paketnamen und dem Klassennamen. Oben wäre z. B. a.b.c.X der FQN der dort genannten Klasse X.

Du kannst jede Klasse über ihren FQN ansprechen. Das ist aber auf Dauer mühselig und macht den Code auch sehr schwer lesbar. Deswegen "importiert" man die Klassen mit der import-Anweisung.

Nehmen wir mal an, Du möchtest eine Liste (java.util.List) verwenden:
Java:
import java.util.List;
Damit brauchst Du im Quelltext bei der Verwendung der Klasse nicht mehr java.util.List zu schreiben, sondern kannst einfach List verwenden. Die Klassen aus dem java.lang sind immer "importiert", hierfür brauchst Du keine Import-Anweisung zu schreiben.

Wenn die Frage darauf abzielt, wie Du Methoden aufrufst: hierfür brauchst Du entweder statische Methoden oder Instanzen der Klasse (sprich: Objekte).

Beispiel:
Java:
System.out.println(String.format("%d", 12));

System ist java.lang.System. Die Klasse hat eine öffentliche Klassenvariable out, die ein Objekt vom Typ java.io.PrintStream referenziert. Diese Klasse wiederum bietet die Methode println an, die mit allen möglichen Parametertypen überladen ist.

String ist java.lang.String. Die Klasse hat eine öffentliche, statische Methode format, die hier verwendet wird, um einen String zu formatieren.

Achtung: das Beispiel ist nicht zur Nachahmung gedacht (suboptimaler Code).
 

M.L.

Top Contributor
Die Authoring-Tools zum Erstellen von BlueRay-Inhalten (mit Java) dürften wohl die bessere Option sein, da die "klassischen" IDEs (Eclipse, IntelliJ,...) eben nur für die reine SW-Entwicklung ausgelegt sind (das dürfte auch die Änderungen aus #1 unter IntelliJ erklären).
Grundsätzlich ist Progammierung die Frage, wie sich der Compiler verhält, wenn er im Quellcode auf ein Schlüsselwort (auch i.V. mit anderen Schlüsselwörtern) (nicht) trifft. Den Compiler interessiert nur die formelle Korrektheit des Codes (z.B. Verwendung einer main-Methode), weniger dessen Quelle (Framework, andere Packages,...). Aus menschlicher Sicht sollte man den Code so organisieren, dass Änderungen / Erweiterungen an nur einer Stelle vorzunehmen sind.
 

DameEdna

Neues Mitglied
Vielen Dank für Eure Antworten. 👍

Was soll das bedeuten? Wenn Du eine Klasse a.b.c.X hast (also Klasse X im Package a.b.c) und X nach Y umbenennst, dann wird daraus a.b.c.Y (also Klasse Y im Package a.b.c).
Es geht um Refactoring, nicht nur um das reine Umbenennen. Das hätte ich dabei schreiben sollen. Letzteres funktioniert natürlich ohne Probleme.

Jede Klasse hat einen eindeutigen Namen - den "vollqualifierte Bezeichner" (FQN - Fully Qualified Name). Der besteht aus den Paketnamen und dem Klassennamen. Oben wäre z. B. a.b.c.X der FQN der dort genannten Klasse X.
Du kannst jede Klasse über ihren FQN ansprechen. Das ist aber auf Dauer mühselig und macht den Code auch sehr schwer lesbar. Deswegen "importiert" man die Klassen mit der import-Anweisung.
Beim originalen Code befindet sich die Start-Klasse „XletBD“ im Package „title“:
Java:
package title;

public class XletBD extends ir
Bleibt der Code wie im Original, dann beschwert sich IntelliJ, dass es „ir“ nicht auflösen kann. Erst wenn ich das Package „public“ mache, findet IntelliJ die „ir“-Klasse außerhalb des Packages. (Und sämtliche anderen Verweise innerhalb des Codes.) Damit behelfe ich mir gerade. Aber das entspricht natürlich nicht dem originalen Code, welcher vom Authoring-Programm erzeugt wird.

Die Authoring-Tools zum Erstellen von BlueRay-Inhalten (mit Java) dürften wohl die bessere Option sein, da die "klassischen" IDEs (Eclipse, IntelliJ,...) eben nur für die reine SW-Entwicklung ausgelegt sind (das dürfte auch die Änderungen aus #1 unter IntelliJ erklären).
Ja, das wäre gut. Aber solche Tools gibt es nicht bzw. sind gar nicht vorgesehen. Entweder produziert das Authoring-Programm seinen eigenen Java-Code, da hat man dann überhaupt keine Einflussmöglichkeit. (Einen solchen Java-Code analysiere ich gerade.) Oder es ist wie bei Scenarist BD/UHD: Dort gibt es ein separates Programm namens Scenarist BD-J. Dabei handelt es sich allerdings um Eclipse. Eine sehr alte Version von Eclipse (Version: 3.3.1.1 ), denn der Blu-ray-Standard ist ja nicht mehr der neuste. ;) Daher arbeitet man auch mit den Standards und Regeln von vor 15 Jahren. Muss ja alles auch zur Not noch mit einen Blu-ray-Player von 2009 funktionieren. 😆
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Packages erstellen Java Basics - Anfänger-Themen 7
S Daten/Klassen/Packages richtig updaten!? Java Basics - Anfänger-Themen 2
M Packages erstellen mit Java-Editor Java Basics - Anfänger-Themen 6
C Probleme mit dem Erstellen und Importieren von Packages Java Basics - Anfänger-Themen 6
A Exceptions und Packages Java Basics - Anfänger-Themen 6
M Probleme beim verwenden von Packages Java Basics - Anfänger-Themen 6
Mxxxt Übersicht Java-Packages Java Basics - Anfänger-Themen 3
D Zusätzliche Packages benutzen? Java Basics - Anfänger-Themen 6
C Java Packages Konvention Namensvergabe Java Basics - Anfänger-Themen 3
B eclipse und packages weiterentwickeln Java Basics - Anfänger-Themen 5
B Compiler-Fehler Packages fehlen? Java Basics - Anfänger-Themen 5
J Eclipse + Java + Packages importieren Java Basics - Anfänger-Themen 7
J eigene packages bzw klassen verwenden Java Basics - Anfänger-Themen 25
S Richtlinien wie man Classen in Packages organisieren soll? Java Basics - Anfänger-Themen 3
G Packages -> was bringen sie? Java Basics - Anfänger-Themen 4
V Java Packages Java Basics - Anfänger-Themen 4
O Funktionen dateiübergreifend mit Packages Java Basics - Anfänger-Themen 6
J Zugriff auf Variable vom typ (default) durch Importieren des Packages? Java Basics - Anfänger-Themen 5
D Javadoc für Packages oder ganze Projekte Java Basics - Anfänger-Themen 5
U Zugriff auf andere Packages Java Basics - Anfänger-Themen 10
S Problem mit Packages Java Basics - Anfänger-Themen 9
C Klassen Main-Routine in Packages? Java Basics - Anfänger-Themen 7
L Konsole und packages Java Basics - Anfänger-Themen 8
B Packages in Eclipse umbennen Java Basics - Anfänger-Themen 12
V Packages: Cannot find symbol Java Basics - Anfänger-Themen 12
Blindxantos Klassen in verschiedene Packages unterteilen Java Basics - Anfänger-Themen 2
B Wie funktioniert der Import von Dritt-packages in Eclipse? Java Basics - Anfänger-Themen 5
K Collections Problem beim import von Packages Java Basics - Anfänger-Themen 10
M Tief verschachtelte Packages Java Basics - Anfänger-Themen 7
Z CLASSPATH + Packages Java Basics - Anfänger-Themen 6
N packages und finden von Klassen Java Basics - Anfänger-Themen 2
J Packages in Jar-Datei Java Basics - Anfänger-Themen 7
D Packages verwenden und in eigenes Projekt integrieren Java Basics - Anfänger-Themen 3
S Anfängerproblem mit Packages Java Basics - Anfänger-Themen 4
J Anfängerfrage zu Grundlagen von Packages Java Basics - Anfänger-Themen 7
B Unterklassen, Packages Java Basics - Anfänger-Themen 3
F Dateipfade mit Packages Java Basics - Anfänger-Themen 7
R mit klassen-instanzen arbeiten in packages Java Basics - Anfänger-Themen 10
F OOP Wrapper ermöglicht Zugriff für andere Packages? Java Basics - Anfänger-Themen 6
T Javac und Packages Java Basics - Anfänger-Themen 4
B Fragen zur Initialisierung/Zuweisung der Variable + Packages erstellen Java Basics - Anfänger-Themen 4
braindump Packages in verschiedenen Unterverzeichnissen Java Basics - Anfänger-Themen 3
G Verschiedene Packages Java Basics - Anfänger-Themen 3
R wo befinden sich die packages? Java Basics - Anfänger-Themen 5
S 2 Packages Java Basics - Anfänger-Themen 14
D packages importieren Java Basics - Anfänger-Themen 3
I Frage zu Packages Java Basics - Anfänger-Themen 19
T Anagram Game - warum ist es auf 2 Packages aufgeteilt? Java Basics - Anfänger-Themen 3
S problem mit packages Java Basics - Anfänger-Themen 7
G Konventionen für die Bezeichnung von Packages Java Basics - Anfänger-Themen 4
M problem mit packages Java Basics - Anfänger-Themen 5
D Packages mit Wizard erstellen Java Basics - Anfänger-Themen 2
S Woher Packages bekommen? Wie installieren? (Netbeans) Java Basics - Anfänger-Themen 4
B Packages einfach kopieren? Java Basics - Anfänger-Themen 13
B Fehler beim einbinden eines Packages Java Basics - Anfänger-Themen 6
G Aufgabe mit Packages Java Basics - Anfänger-Themen 3
G erstes Arbeiten mit Packages Java Basics - Anfänger-Themen 2
H javac mit meheren packages Java Basics - Anfänger-Themen 2
G Aus package auf andere eigene packages zugreifen? Java Basics - Anfänger-Themen 7
E import Anweisung und Packages Java Basics - Anfänger-Themen 3
F Pfadfrage in Packages und jar-Archiven Java Basics - Anfänger-Themen 3
P packages verwenden Java Basics - Anfänger-Themen 3
M Variabelzugriff auf fremde Packages Java Basics - Anfänger-Themen 5
D Probleme nach Einbindung einens neuen Packages Java Basics - Anfänger-Themen 5
T Packages erstellen und importieren? Java Basics - Anfänger-Themen 10
D Packages Java Basics - Anfänger-Themen 3
T Verständnisproblem packages/import Java Basics - Anfänger-Themen 9
P wohin muss ich die packages kopieren? Java Basics - Anfänger-Themen 12
T Erstellen eigener packages Java Basics - Anfänger-Themen 6
H Packages in JAR-Datei einbinden Java Basics - Anfänger-Themen 10
S Importieren in Packages Java Basics - Anfänger-Themen 11
C packages, jars - Verstaendnisfrage Java Basics - Anfänger-Themen 7
L Problem mit Packages Java Basics - Anfänger-Themen 5
L Eigene Packages importieren Java Basics - Anfänger-Themen 2
N Packages definieren bzw. zum Classpath hinzufügen Java Basics - Anfänger-Themen 4
A Packages und Vererbung Java Basics - Anfänger-Themen 5
S Packages verwenden Java Basics - Anfänger-Themen 7
T Nerv! Packages und Classpath Java Basics - Anfänger-Themen 2
H probleme mit import von eigenen packages Java Basics - Anfänger-Themen 4
C Packages... Java Basics - Anfänger-Themen 7
Z Artifacts IntelliJ Fehler Java Basics - Anfänger-Themen 4
thomas55 Erste Schritte Modul läuft in IntelliJ, nicht in NetBeans Java Basics - Anfänger-Themen 11
W IntelliJ - Maven - Jump to failed Tests Java Basics - Anfänger-Themen 4
M Code aus IntelliJ in "Textform" für Word-Paper? Java Basics - Anfänger-Themen 10
T IntelliJ / SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". Java Basics - Anfänger-Themen 4
Z IntelliJ Java Basics - Anfänger-Themen 4
M Anfängerfehler - Tests JUnit IntelliJ Java Basics - Anfänger-Themen 24
P Gibt es einen anderen Weg um "{}" in IntelliJ zu schreiben? Java Basics - Anfänger-Themen 5
S IntelliJ geht alle Klassen durch Java Basics - Anfänger-Themen 9
M intelliJ auf neuem PC, plötzlich kein Code Java Basics - Anfänger-Themen 3
nbergmann IntelliJ: Wie lade ich ein fertiges Programm aus dem Lehrbuch? Java Basics - Anfänger-Themen 26
R Intellij javafx --> jar Java Basics - Anfänger-Themen 11
D maven dependencies re-importieren in intellij Java Basics - Anfänger-Themen 5
D Zwei verschiedene Intellij Projekte, wie benutze ich wechselseitig objekte Java Basics - Anfänger-Themen 8
lougoldi Intellij oder Eclipse Java Basics - Anfänger-Themen 7
TimoN11 IntelliJ , Ausgabe von einem Quellcode in Eingabe eines Quellcodes Java Basics - Anfänger-Themen 1
D Frage zur IDE IntelliJ IDEA Java Basics - Anfänger-Themen 6
D Ausführbare jar/exe aus JAVAFX Projekt erstellen (IntelliJ) Java Basics - Anfänger-Themen 14
S e(fx)clipse oder intellij Java Basics - Anfänger-Themen 13
alkaA Intellij Java Datei aus nicht Projekt ausführen? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen


Oben