# Nochmals Java-Lizenz



## Alex_winf01 (26. Okt 2007)

Hallo Forengemeinde,

folgende Frage:

Ich muss für meinen Betrieb ein kommerzielles Softwareprogramm schreiben, welches wir an unsere Kunden verkaufen. Ich habe jetzt schon viel unter google geschaut und nix richtig handfestes gefunden. 

1) Darf ich eine Software mit Java entwickeln und anschließend kommerziell verkaufen? Der Kunde soll dabei nur das jar-File mit dem Programm bekommen.
2) Den Sourcecode mitzuliefern wäre bei einer kommerziellen Verkauf etwas "hinderlich". Aber wenn ich die GPL richtig verstehe, muss ich den Quellcode mitliefern. Oder muss ich den nur auf Anfrage ausliefern?


----------



## The_S (26. Okt 2007)

1.) Darfst du
2.) Verwendest du denn überhaupt GPL Bibliotheken?


----------



## Alex_winf01 (26. Okt 2007)

Welche Bibliotheken stehen denn unter GPL?

Das wird ein ganz normales Java-Programm mit GUI (also Swing usw.) mit Datenhaltung (mit einer Datenbank). Welche Datenbank kann man denn empfehlen, um diese lizenzrechtlich kostenlos verwenden zu dürfen? MySQL fällt da weg - wegen dem JDBC-Treiber. Ich würde ansonsten HSQLDB nehmen, aber das Programm muss auch bei einer hohen Anzahl an Datensätzen noch funktionieren.


----------



## The_S (26. Okt 2007)

Welche Libs unter GPL stehen entnimmst du der Seite wo du sie runtergeladen hast, oder dem Lizenz-File, das dabei liegt.

Und HSQLDB bekommt Probleme mit vielen Daten? Seit wann das denn?


----------



## Alex_winf01 (26. Okt 2007)

Also ich benutzte nur die Standard-API von java. Muss ich dann den Code mitliefern oder nicht?


----------



## The_S (26. Okt 2007)

nein


----------



## Saxony (26. Okt 2007)

Alex_winf01 hat gesagt.:
			
		

> Also ich benutzte nur die Standard-API von java. Muss ich dann den Code mitliefern oder nicht?



Hehe den Bytecode schon...  :roll: 

bye Saxony


----------



## The_S (26. Okt 2007)

Du hast da was an der Backe ... schaut nach Schminke vom Clown aus, den du heute gefrühstückt hast ...


----------



## Wildcard (26. Okt 2007)

Alex_winf01 hat gesagt.:
			
		

> Der Kunde soll dabei nur das jar-File mit dem Programm bekommen.
> ...
> Ich würde ansonsten HSQLDB nehmen, aber das Programm muss auch bei einer hohen Anzahl an Datensätzen noch funktionieren.


Wenn ich die HSQL DB Lizenz richtig verstehe, musst du zumindest deren Lizenz beilegen. Das war's dann aber auch.


----------



## Alex_winf01 (26. Okt 2007)

Ich habe dazu noch folgende Frage:

Das Java-Programm soll folgende Sachen "können":



- Mehrbenutzerfähigkeit (es sollen auch also mehrere Anwender gleichzeitig auf das Programm zugreifen können)
- Datenhaltung über eine kostenlose Datenbank (keine kostenpflichtige Lizenzen)
- Daten müssen verschlüsselt werden können
- Datensätze suchen
- Export/Import

Meine Fragen:

1.) Wie kann ich die Mehrbenutzerfähigkeit gewährleisten (auch im Hinblick Datenbank, da der gerade bearbeitete Datensatz gesperrt werden muss)?
2.) Welche Datenbank könnt ihr empfehlen? Also mit den Kriterien: Keine Lizenzgebühren, muss viel Datensätze abkönnen (> 2 Millionen), Mehrbenutzer (z. B. Sperrung von Datensätzen)
3.) Wie kann ich die Daten verschlüsseln (z. B. für den Export)?


----------



## Wildcard (26. Okt 2007)

1.) Wie kann ich die Mehrbenutzerfähigkeit gewährleisten (auch im Hinblick Datenbank, da der gerade bearbeitete Datensatz gesperrt werden muss)?
Das ist Sache der DB
2.) Welche Datenbank könnt ihr empfehlen? Also mit den Kriterien: Keine Lizenzgebühren, muss viel Datensätze abkönnen (> 2 Millionen), Mehrbenutzer (z. B. Sperrung von Datensätzen)
HSQL, JavaDB, H2, Apache Derby,...
3.) Wie kann ich die Daten verschlüsseln (z. B. für den Export)?
Java Security Extension zB.


----------



## Alex_winf01 (26. Okt 2007)

@ wildcard

Danke schon mal für Deine Antwort. Ich habe diesen Forumsbeitrag hier im Forum gelesen:

HSQLDB Mehrbenutzerbetrieb

Und danach sollte man HSQLDB eben NICHT im Mehrbenutzerbetrieb laufen lassen. :roll:


----------



## Wildcard (26. Okt 2007)

Ich glaube du missverstehst das.
HSQL hat mehrere Modes. 
Non-persistent -> nichts wird gespeichert
standalone -> läuft in der Client VM -> nur ein User
server -> DB läuft in einem eigenen Prozess auf einem Server
web -> keine Transaktionen

Bei dir wäre es die Server Variante. Ein ganz anderes Szenario als besagter Thread.


----------



## Guest (26. Okt 2007)

> 2.) Welche Datenbank könnt ihr empfehlen? Also mit den Kriterien: Keine Lizenzgebühren, muss viel Datensätze abkönnen (> 2 Millionen), Mehrbenutzer (z. B. Sperrung von Datensätzen)
> HSQL, JavaDB, H2, Apache Derby,...



postgresql ist auch sehr zu empfehlen. Steht unter BSD Lizenz und man kann damit machen was man will.


----------



## Alex_winf01 (26. Okt 2007)

Mm, da muss ich mit dem Kollegen noch mal reden. Er wollte die Anwendung so haben, dass man auf der einen Seite als Standalone genutzt werden kann UND als Mehrbenutzer. Er wollte ungerne eine Server-Lösung. Ich bin der Meinung, wenn er eine Mehrbenutzer-Lösung haben möchte, geht es um eine Server-Installation nicht drum rum.

@ wildcard

Wie sieht das denn dann praktisch mit der Umsetzung aus, wenn ich das Programm auf dem Server zur Verfügung stelle. Wie muss ich hsqldb einstellen, damit es als Server läuft?

@  Gast

ist bei PostgreSQL auch der JDBC-Treiber kostenlos oder benötige ich hierfür eine Lizenz? Bei MySQL ist das nämlich so. Da ist MySQL im Prinzip kostenlos, aber für den JDBC-Treiber benötigt man eine Lizenz, sobald man das Programm kommerziell nutzt.


----------



## The_S (26. Okt 2007)

Wie ist das zu vertehen? Stand-Alone und Server? Du könntest mit dem Programm eine lokale HSQLDB für einen User erstellen und bei Bedarf z. B. mit einem Server abgleichen. Falls dass das ist, was du machen willst.

Was heißt hier einstellen? Einfach das Jar mit enstprechenden Parametern über die Konsole starten, schon hast du einen Server. Dann einfach anstelle auf den Dateinamen auf den Server + Post zugreifen. Für Standalone den lokalen Pfad angeben.

Ist ja gut sich vor einem Projekt gedanken zu machen, aber ich glaube du machst dir ein wenig zu viele  .


----------



## Alex_winf01 (28. Okt 2007)

Ich habe da noch mal eine Frage:

hsqldb steht ja unter der Open-Source-Lizenz. Da das Programm später kommerziell betrieben werden soll, ist es nicht gewünscht, den Quellcode in einer für den Anwender lesbaren Form mitzuliefern. Wenn ich die Lizenzbestimmungen von hsqldb richtig verstehe, muss ich den Quellcode aber mitliefern. Sehe ich das richtig?


----------



## Wildcard (28. Okt 2007)

> Wenn ich die Lizenzbestimmungen von hsqldb richtig verstehe


Ich wage zu bezweifeln das du die Lizenz gelesen hast


----------



## Gast (28. Okt 2007)

> Bei MySQL ist das nämlich so. Da ist MySQL im Prinzip kostenlos, aber für den JDBC-Treiber benötigt man eine Lizenz, sobald man das Programm kommerziell nutzt.
> Nach oben


MySQL Connector steht meines Wissens nach unter GPL und das bedeutet:


> Freiheiten
> Das Wort „frei“ bedeutet das Recht, die Software nach den eingeräumten vier Freiheiten verwenden zu dürfen. Das Wort frei ist im Sinne von Freiheit zu verstehen, benennt also einen Zustand der Autonomie und Unabhängigkeit.[1]
> 
> Die GPL gewährt jedermann die folgenden vier Freiheiten als Bestandteile der Lizenz.
> ...


Und ich würde auch MySQL empfehlen, da sich inzwischen einiges getan hat und viele Fehler behoben wurden.

Gruß


----------



## Wildcard (28. Okt 2007)

GPL ist völlig ungeeignet wenn man den eigenen Quellcode nicht offen legen möchte (was hier ja der Fall zu sein scheint).


----------



## Gast (28. Okt 2007)

Ist es wirklich so, dass ich mein Programm auch unter GPL stellen muss, nur weil ich darin etwas nutze, was unter GPL steht?
Falls dem so wäre hast Du natürlich völlig recht. 
Ich dachte ich muss nur den Quellcode des genutzten SQL Connectors offenlegen.


----------



## Wildcard (28. Okt 2007)

Nein, das wäre dann die LGPL. Bei der GPL fällt alles was gegen die GPL linkt auch automatisch unter die GPL.


----------



## Gast (28. Okt 2007)

Ja Du hast recht, und:


> Ich muss für meinen Betrieb ein kommerzielles Softwareprogramm schreiben, welches wir an unsere Kunden verkaufen.


demnach nicht für Ihn geeignet. Über sowas muss man sich natürlich Gedanken machen.


----------



## Joker (28. Okt 2007)

wie es oben schon jemand geschrieben hat würde ich mir auch postgresql anschauen. Das ist vollkommen frei und dabei noch wesentlich Leistungsfähiger als mysql.

http://www.postgresql.org/


----------



## Alex_winf01 (28. Okt 2007)

@ Wildcard

In den Lizenzbestimmungen von hsqldb selber steht da nichts von Quellcode mitliefern, ABER es steht unter Open-source-Lizenz und bei so einer Lizenz MUSS man den Quellcode mitliefern.

Meine Frage an Dich Wildcard:

Java steht ja unter der Lizenz GPL Version 2. Somit muss ich den Quellcode mitliefern. Hobbit_Im_Blutrausch hat aber hier geäußert, dass ich das bei Java nun nicht mitliefern muss (den Quellcode in lesbarer Form mitliefern). Was stimmt denn da nun?


----------



## Wildcard (28. Okt 2007)

> In den Lizenzbestimmungen von hsqldb selber steht da nichts von Quellcode mitliefern, ABER es steht unter Open-source-Lizenz und bei so einer Lizenz MUSS man den Quellcode mitliefern.


Unsinn. Eine OpenSource Lizenz bedeutet nicht automatisch das du deinen eigenen Quelltext offenlegen musst.
Es kommt eben auf die Lizenz an und die von HSQLDB verlangt das nicht.


> Java steht ja unter der Lizenz GPL Version 2. Somit muss ich den Quellcode mitliefern. Hobbit_Im_Blutrausch hat aber hier geäußert, dass ich das bei Java nun nicht mitliefern muss (den Quellcode in lesbarer Form mitliefern). Was stimmt denn da nun?


Bei Java gibt es die sog. Classpath Ausnahme. Java Programme sind weder per se GPL, noch musst du den Java Source ausliefern.


----------



## Alex_winf01 (28. Okt 2007)

Ich brauche aber keine Lizenzen dafür zu kaufen, oder (ich meine für Java und hsqldb)?


----------



## Wildcard (28. Okt 2007)

Nein.
Die hsqldb Lizenz musst aber zumindest beilegen. Lies das Ding doch einfach  :autsch:


----------



## Alex_winf01 (29. Okt 2007)

@ Wildcard

Danke für Deine Geduld. Eine letzte Frage. In der Lizenz steht:



> Beispielsweise müssen Sie den Empfängern alle Rechte gewähren, die Sie selbst haben, wenn Sie – kostenlos oder gegen Bezahlung – Kopien eines solchen Programms verbreiten. Sie müssen sicherstellen, daß auch die Empfänger den Quelltext erhalten bzw. erhalten können. Und Sie müssen ihnen diese Bedingungen zeigen, damit sie ihre Rechte kennen.



Bezieht sich das jetzt auf die Java-Technologie und auf hsqldb? Weil es ja nicht gwünscht ist, dass man ein Programm entwickelt und kommerziell verkauft, dass dieses Programm "einfach so" kopiert und verteilt wird. Darf jeder, der unser kommerzielles Produkt verwendet, dieses einfach so kopieren und weitergeben? Dann wäre Java doch für kommerzielle Zwecke (und somit eigentliche jede "freie" Software) sinnlos.


----------



## Wildcard (29. Okt 2007)

Alex_winf01 hat gesagt.:
			
		

> Eine letzte Frage. In der Lizenz steht:


In welcher Lizenz soll das stehen?
Es gibt nicht *die* OpenSource Lizenz. Java hat eine Lizenz, HSQLDB hat eine Lizenz. Lies die Dinger (in Englisch!). Wenn du zu einer konkreten Formulierung eine Frage hast, stell sie.


----------

