Frage

Wie das Thema dieses Beitrags vorschlägt, möchte ich eine Suite wie Nero entwickeln, die dazu beiträgt, BluRay -Discs zu verbrennen. Ich bin nicht ahnungslos, wo ich anfangen soll. Gibt es etwas in der Java -API, mit dem Sie dies tun können? Wenn ich von vorne anfangen würde, müsste ich mit der BluRay Disc Spec beginnen? Gibt es Open -Source -Tools, die dies bereits tun? Ich habe versucht, auf SourceForge.net zu suchen und fand nichts Nützliches. Jede Hilfe wird sehr geschätzt.

War es hilfreich?

Lösung

Zunächst mit dem Offensichtlichen: Kennen Sie Ihre Anforderungen und Werkzeuge. Ich versuche hier vielleicht zu raten.

Anforderungen:

  1. Sollte Bluray -Discs verbrennen
  2. Grafische Benutzeroberfläche

Bevorzugter Werkzeug:

  • Java

Jetzt erreicht Java, das vielleicht das Hauptbeispiel für eine VM-Sprache aus den 90es ist, aufgrund seiner VM seine relativ gute Plattform-Agnostizismus. Es ist eine Sprache entworfen auf einem laufen virtuell Hardware, um die Portabilität für echte Hardware zu erleichtern.

Nun, was mit dieser Tatsache einhergeht, ist, dass Sie viele Dinge abstrahieren, die Sie sich kümmern müssten, z. B. Details des Gedächtnisses und Architektur oder plattformspezifische. Unter den Dingen, auf die Sie nicht zuverlässig zugreifen können, ist Hardware. Immerhin haben Sie das meiste davon abstrahiert.

Jetzt, um eine BluRay -Scheibe zu verbrennen, Sie haben Zu Hardware zugreifen, insbesondere der BluRay -Schriftsteller. Nicht, dass es unmöglich ist, aber Java ist meiner bescheidenen Meinung nach nicht das richtige Werkzeug dafür. Sie können sich in den Weg gehen, indem Sie eine Bibliothek in C oder C ++ implementieren und JNI/JNA verwenden, um darauf zuzugreifen, aber was gewinnen Sie wirklich?

Java ist normalerweise eine Wahl, wenn Sie eine ziemlich moderne Sprache auf hoher Ebene mit einer großen Standardbibliothek benötigen, und Sie benötigen auch Ihre Programme, um auf mehr als einer Plattform ausgeführt zu werden. Das sind die primären Anwendungsfälle. Mit anderen Technologien ist es nicht unmöglich, aber vielleicht schwieriger zu erreichen, je nachdem, was genau Sie brauchen.

Wenn Sie eine native Bibliothek implementieren, um mit dem BluRay-Schriftsteller zu sprechen und mit dem von Java zu sprechen, müssen Sie sie notwendigerweise für andere Plattformen erneut implementieren (vorausgesetzt, das wollen Sie, wenn nicht, dann noch einmal: Warum Java?) .

TL/DR -Version: Mein Punkt ist, dass es nicht allzu überraschend ist, dass Sie zu diesem Thema nicht viel finden können. Zum einen war Java nicht wirklich so konzipiert, dass sie so etwas erledigen. Der größte Teil des Java/Native Interop liegt in der JVM und das ist bereits ein schrecklicher Code. Erwarten Sie nicht, dass Java sehr seltene Nutzungsszenarien wie CD/DVD/BluRay -Verbrennung nativ unterstützt. Zweitens ist Bluray eine relativ neue Technologie mit Autoren, die noch keine häufige Hardware in Computern wie CD/DVD -Autoren haben, sodass das Fehlen von Bibliotheken und Tools auch ein Spiegel der aktuellen Anforderungen des Marktes sein kann.

Andere Tipps

Niedriger Hardwarezugriff ist in reinem Java einfach nicht möglich, es sei denn, er befindet sich in der Standard-API, die BluRay nicht ist.

Daher müssen Sie den Nicht-Java-Code verwenden, um auf die Hardware zuzugreifen. Zu diesem Zeitpunkt verlieren Sie die Plattformunabhängigkeit von Java und haben notwendigerweise ein mehrsprachiges System, das immer schmerzhafter ist, als nur eine einzelne Sprache zu verwenden.

Wenn Sie jedoch ein Multi-Plattform-BluRay-Schreib-API- oder Befehlszeilen-Tool in (höchstwahrscheinlich) C finden können (oder entwickeln), ist es möglicherweise immer noch sinnvoll, den Rest der App in Java als GUI zu schreiben Wrapper mit zusätzlicher Funktionalität.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top