Umsteiger hat noch ein paar Fragen

chris_chri

Mitglied
Hallo,

zuerst mal: Ich komme aus der C#-Schiene und möchte mich jetzt ein bisschen in Java-profilieren. Nachdem ich mein Grundwissen aufgebaut habe möchte ich mich jetzt an das erste "große" Projekt wagen. (Ein Plattform-unabhängiger Taschenrechner mit GUI oder so etwas...)

Dazu hätte ich noch ein paar Fragen:
1. Die Verbreitung:
Akzeptiert der (08 -15) - Windows - User eine *.jar Datei oder hält er sie für ein Sicherheitsrisiko? Heißt das, ich muss aus jeder *.jar wieder eine *.exe mache bzw. eigene Dateien für Windows, Linux, MacOS... anbieten?
Ist es überhaupt machbar, wirklich eine Datei ohne Anpassungen (wie schaut es eigentlich mit Pfaden aus?) auf allen System laufen zu lassen? (Ich weiß, dass ist der Sinn von Java aber funktioniert das auch in der Praxis so reibungslos?)

2. Die Programmupdates:
Angenommen meine Theorie in Punkt 1 stimmt und die *.jar wird nicht akzeptiert - wie stelle ich dann Plattform-unabhängige Updates bereit? Muss hier wieder ein Update-Paket für Linux, Windows usw. her?

3. Die Entwicklungsumgebung:
Netbeans oder Eclipse? Ich habe meine Anfängerbeispiele in Netbeans erstellt und war eigentlich sehr zufrieden damit - wie schaut das für mein "großes" Projekt aus? (Ich weiß, das ein Taschenrechner kein großes Projekt ist, aber wie schaut es prinzipiell aus? - Ist Ecplise mächtiger? Nimmt man für größere Projekte immer Eclipse?)


Ich denke, alle 3 Punkte sind auch Philosophie-Fragen und ich will jetzt keine Programmier-Philosophie-Threads starten, ich möchte nur wissen, was ihr von meinen Überlegungen hält.

LG
Chris
 
Hallo,

(zu 1) also ich würde dem user eine bat, sh, (mac datei) bereit stellen, damit er das benutzen kann.

Die Bat datei kümmert sich um den classpath und solche Dinge.

Klappt i.d.R. auch ;D

Ja es ist machbar. Bei Pfaden sollte man aufpassen und immer
Code:
/
statt windows
Code:
\
zu verwenden...

Ansonsten kann man aus
Code:
System.getProprty()
die Systemumgebung ein wenig auskundschaften und temp Dateien in die entsprechenden von System vorgesehen Verzeichnisse legen.

2) Wenn du eine der o.g. Dateien nimmst um deine jar zu starten, dann brauchst du auch nur diese auszutauschen.

3) Ich benutzte für alles Eclipse, sollte ich eine GUI benötigen, dann greife ich auf Netbeans zurück. Bei uns in der Firma benutzen alle Entwickler Eclipse.

Aber die Wahl der IDE ist jedem selbst überlassen.

Gruß,

Marcin
 
1. Die Verbreitung:
Akzeptiert der (08 -15) - Windows - User eine *.jar Datei oder hält er sie für ein Sicherheitsrisiko? Heißt das, ich muss aus jeder *.jar wieder eine *.exe mache bzw. eigene Dateien für Windows, Linux, MacOS... anbieten?
Ist es überhaupt machbar, wirklich eine Datei ohne Anpassungen (wie schaut es eigentlich mit Pfaden aus?) auf allen System laufen zu lassen? (Ich weiß, dass ist der Sinn von Java aber funktioniert das auch in der Praxis so reibungslos?)
Ja, die Java Runtime sollte heute überall drauf sein, wenn nicht kann sie nachinstalliert bzw. mitausgeliefert werden, haben dazu einen Artikel in der FAQ.
Pfade sind kein Problem, oder was meisnt du denn genau?
Native Lauchner (.exe für Windows) welche eigentlichen JArs starten gibt es zB. bei Eclipse, normalerweise macht es wenig Sinn aus seiner jar eine .exe zu bauen, shell scripte als Launcher sind üblich bei Anwendungen die "größer" sind und viele Fremdlibs mitbringen.
 
zu 1.
also habe ich eine .bat, .sh, .exe als nativen Launcher mit "schönem Icon" der dann die .jar startet.

noch eine Frage ist aufgetaucht:
In den .jars steht ja alles "unverschlüsselt" bzw. "undecodiert" (sind alles falsche Ausdrücke, aber ich denke, ihr wisst, was ich meine...)
wie handelt man das dann ab wenn es um Sicherheitsfunktionen bzw. Lizenzen o.ä. geht? Es hilft doch der beste Algorithmus nichts, wenn ich den Code ziemlich leicht reserve engineeren kann? Kann man eine .jar verschlüsseln bzw. gegen so etwas sichern?
 
Da haben .Net und Java auch wieder etwas gemeinsam 😉

Klar gibt es "obfuscators", aber wo ein Wille ist... ist übrigens auch mit anderen Sprachen so, nur eben nicht ganz so einfach.
 
Es hilft doch der beste Algorithmus nichts, wenn ich den Code ziemlich leicht reserve engineeren kann? Kann man eine .jar verschlüsseln bzw. gegen so etwas sichern?
Da für dich ein einfacher Taschenrechner ein größeres Projekt ist, sind deine Kenntnisse über Softwareentwicklung noch sehr eingeschränkt. Du wirst wahrscheinlich also noch nicht fähig sein Code zu schreiben, der so gut ist, dass es sich lohnt ihn zu kopieren.

Also brauchst du dir darum auch noch keine Sorgen machen. Für den Anfang ist es wichtiger zu lernen und das tust du am einfachsten wenn du alles OpenSource machst und von erfahreneren Entwicklern Hilfe bezüglich Code-Verbesserungen bekommen kannst.
 
Da für dich ein einfacher Taschenrechner ein größeres Projekt ist, sind deine Kenntnisse über Softwareentwicklung noch sehr eingeschränkt. Du wirst wahrscheinlich also noch nicht fähig sein Code zu schreiben, der so gut ist, dass es sich lohnt ihn zu kopieren.

Du bist witzig 😉
Es gibt auch noch anderes an einem Taschenrechner außer + - x / , wenn du auch diverse Formeln einprogrammierst um denselben Funktionsumfang wie zb. ein Casio FX bereitstellst, kann auch ein "einfacher Taschenrechner" plötzlich sehr anspruchsvoll werden.
 
Java ist auch eine Insel und beantwortet die Fragen dazu.

Es gibt afaik VMs, die tatsächlich verschlüsselte Jars entschlüsseln und dann normal abspielen.

Wie das geht weiß ich aber nicht ;D
 

Neue Themen


Zurück
Oben