NetBSD 1.6 und Java

[moR-pH-euS]

Magnum P.I.
DAS HOW-TO IST NOCH VOM 15.12.2002, WIRD ABER DIE NÄCHSTEN WOCHEN ÜBERERBEITET



Diese How-To wurder unter NetBSD 1.6 getestet, es erklärt wie ihr java unter netbsd installiert, unter opera und netscape miteinbindet um java-applets zu sehen und java zu programmieren;

===================================
===== TOC ==========================

1. Packages aktualisieren bzw. installieren (optional)

2. Linux Emulation

3. Java installieren

4. Opera und Netscape

5. Java Compiler

6. IDE für Java (optional, da ich keinen ide installieren konnte
der stabil lief, nur relevant wenn ihr es bei euch testen wollt)

===================================
===================================


zuerst etwas grundsätzliches:
das jre beinhaltet nur die laufzeitumgebung um java-anwendungen auszuführen (quasi die plugins für eueren browser)
das sdk beinhaltet darüberhinaus noch den compiler und debugger um mit java programmieren zu können.


1. als erstes habe ich mir die neuesten packages installiert, dazu müsst ihr die package-collection vom ftp-server von netbsd herunterladen und nach /usr kopieren

Code:
#ftp [url]ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-current/tar_files/pkgsrc.tar.gz[/url]

#cp <euer_verzeichniss_wo_pkgsrc.tar.gz_liegt> /usr

#tar xfvz pkgsrc.tar.gz

wenn ihr bereits pkgsrc entpackt auf eurem system habt, müsst ihr es eventuell auf den neuesten stand bringen. das wird bereits im netbsd-handbuch erklärt.



2. als nächtes benötigen wir die linux-emulation für opera und netscape

ihr könnt sie euch auf einem einfachen weg installieren wenn ihr aus den packages z.B. opera oder den acrobat reader installiert, da diese
linux-emulation benötigen und dabei alles mitinstalliert wird;

Code:
#cd /usr/pkgsrc/www/opera6

#make && make install (oder "make" und dann "make install" tippen)

dabei werden alle packete installiert (unter anderem tools damit rpm's entpackt werden und die benötigten suse-pakete für die linux-emu)

wenn ihr sie per hand installiert müsst ihr in die packages gehen und installiert rpm wenn es noch nicht vorhanden ist (seht ihr mit pkg_info)

Code:
#cd /usr/pkgsrc/misc/rpm

#make && make install

nun könnt ihr mit der linux-emu weitermachen:

Code:
#cd /usr/pkgsrc/emulators/

dann installiert ihr suse_base, suse_compat, suse_libc5, suse_libjpeg, suse_libpng, suse_gtk und suse_x11 immer mit dieser prozedur

einfach in das ensprechende verzeichniss gehen und dann

Code:
#make

#make install

eingeben (oder eben "make && make install" dann muss man nur einmal tippen)

mit "pkg_info | grep suse" könnt ihr sehen ob sie installiert sind;



3. nun ladet ihr euch das j2sdk herunter für linux:

ftp://ftp.informatik.hu-berlin.de/pub/Java/Linux/JDK-1.3.1/i386/FCS-02b/

(ich habe mich für die 1.3.1 entschieden, ihr könnt auch gerne die neueste beta nehmen [1.4.1] sollte auch gehen, haben ich allerdings nicht getestet) verschiebt nun das j2re-1.3.1-FCS-linux-i386.tar.bz2 nach /usr und entpackt es mit bzip2

Code:
#cd /usr/local

#cp <euer_verzeichniss_wo_j2sdk_liegt> .

#./j2sdk-1.3.1-02b-FCS-linux-i386.bin

nun ist das j2sdk installiert;



4. jetzt muss opera installiert werden

Code:
#cd /usr/pkgsrc/www/opera6

#make && make install

opera findet beim starten automatisch das jre, ihr könnt es überprüfen wenn ihr opera startet und unter "help" auf "about opera" geht;
wenn dort steht "Java Java Runtime Environment installed" ist alles in ordnung und ihr sollet java-applets sehen können wenn ihr es in den
preferences eingeschalten habt;
wenn ihr euch opera auf netbsd installiert habt lest das noch durch wenn ihr die fehlermeldung "could not locate remote server" bekommt:

http://org.bsdforen.de/showtopic.php?threadid=216&time=1039913783

wenn ihr netscape 4 installiert habt (ich habe 4.80) müsst ihr noch den pfad zu java netscape mitteilen;

Code:
#vi /emul/linux/root/.netscape/plugin-list

und dann den pfad eintragen

Code:
/usr/local/j2sdk1.3.1/plugin/i386/netscape4/javaplugin.so

speichern und schliessen, netscape starten und testen ob die java-applets gehen... wenn ihr auf http://java.sun.com/openstudio/index.html die
tickende, analoge uhr seht funktioniert es...


5. Java Compiler installieren

Wenn ihr das jre installiert ist kein compiler dabei, bei der sdk version dagegen schon; wenn ihr nur das jre braucht könnt ihr euch den open-source java compiler jikes installieren, das ist der java-compiler von ibm; einfach die sourcen herunterladen

http://oss.software.ibm.com/developerworks/downloads/?group_id=10&recent_only=1

dann entpacken und kompilieren

Code:
#tar xfvy jikes-1.18.tar.bz2

#cd jikes-1.18

#./configure

#make

#make install

#make clean

nun noch den pfad setzen damit java die classvariablen findet:

Code:
#export CLASSPATH=.:/usr/local/j2sdk-1.3.1/lib/rt.jar

und wir passen noch die path variable an (wenn ihr die bash benutzt)

Code:
vi ~/.profile

und fügt folgendes am ende der export PATH variable hinzu:

Code:
export PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/pkg/sbin:/usr/pkg/bin:/usr/local/j2sdk-1.3.1//bin

hier noch für die csh

Code:
vi ~/.cshrc

set path = /bin /andere/bins /usr/local/j2sdk-1.3.1//bin

nun könnt ihr schon mit einem kleinen java-programm testen ob es funktioniert:

Code:
#vi HalloWelt.java

und das eintragen:

Code:
class HalloWelt {
public static void main (String[] args) {
System.out.println("BSD rules");
}
}

nun noch mit

Code:
#jikes HalloWelt.java

kompilieren und mit

Code:
java HalloWelt

die kompilierte java-anwendung starten; und nun sollte die Ausgabe "BSD rules" kommen...

bei mir kommt beim ausführen des programmes immmer die fehlermeldung "Error occured durin initialization of VM
Could not reserve enough space for object heap"; das bedeutet das er nicht genügend arbeitspeicher zur verfügung hat,
deswegen muss ich es beim kompilieren einen maximalwert festsetzen

Code:
java -mx48m HalloWelt


6. IDE (integrated development environment) für JAVA (optional)

Als nächstes habe ich versucht (leider blieb es nur bei dem versuch) mir eine Programmierumgebung für Java auf NetBSD zu installieren.
Bei umfangreicheren Programmen ist das sehr von Vorteil. Ich habe mich dabei für das opensource Produkt NetBeans entschieden, es ist
in Java programmiert und benötigt daher nur eine java-umgebung (so die theorie).

Zuerst müsst ihr das File herunterladen (neueste Version war bei mir 3.4)

http://www.netbeans.org/ide/download.html

danach entpackt ihr das file mit

Code:
#tar xfvy NetBeansIDE-release34.tar.bz2

oder mit

Code:
#tar xfvz NetBeansIDE-release34.tar.gz

wenn ihr das gz-archiv runterladen solltet, wobei bz2 eine bessere kompression hat und der download dadurch natürlich schneller ist.

Nun geht ihr in das netbeans/bin directory

Code:
#cd netbeans/bin

und startet runide.sh und gebt ihm euer java verzeichniss an, da er es nicht automatisch findet bzw. wir die $PATH variable noch nicht gesetzt haben

Code:
#./runide.sh -jdkhome /usr/local/j2sdk-1.3.1/
Error occurred during initialization of VM 
Could not reserve enough space for object heap

dann bekommt ihr erst mal diese fehlermeldung (war zumindest bei mir so); das problem ist aber schnell gelöst:

Code:
#vi ide.cfg

und ändert die zeile so ab:

Code:
-J-Xmx96m parameter to -J-Xmx48m

nun nochmal runide.sh

Code:
#./runide.sh -jdkhome /usr/local/j2sdk-1.3.1/

ich weiss zwar nicht genau warum dieser fehler auftrat (ich habe 196MB Ram, aber der installer wollte erst dann starten...)
aber es funktioniert nur so;
als nächstes kommt ein java-installer der euch frägt ob ihr java-path variablen einer vorgänger version von netbeans importieren wollt; das ist nicht
der fall also lassen wir es auf der defaulteinstellung "no";
netbeans startet nun; das problem ist das es sehr buggy ist unter netbsd und leider nur manchmal bei mir startet und wenn es
startet sich auch öfters aufhängt;
ich habe bereits auch andere ide's getestet

jbuilder personal ver. 8 für linux von borland findet trotz expliziter pfad-angabe bei der installation keine vm
(download http://www.borland.com/products/downloads/download_jbuilder.html#) vorher müsst ihr noch ein kleines formular ausfüllen
und eure e-mail adresse angeben an die ein key geschickt wird;

studio4 von sun beruht auf netbeans, daher genauso unstabil
(download http://wwws.sun.com/software/sundev/jde/buy/index.html)


bei problemen, logischen fehlern, rechtsschreibfehlern oder anregungen bitte eine antwort hier im thread, oder schickt mir eine pm


Quellen:

http://www.mclink.it/personal/MG2508/nbsdeng/chap-pack.html

http://www.netbsd.org/Documentation/compat.html

http://www.lindloff.com/netbsd/netbsd-linuxemu.html

http://oss.software.ibm.com/developerworks/opensource/jikes/faq/user-index.shtml
 
Zuletzt bearbeitet:
[moR-pH-euS] schrieb:
Code:
#ftp [url]ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-current/tar_files/pkgsrc.tar.gz[/url]

#cp <euer_verzeichniss_wo_pkgsrc.tar.gz_liegt> /usr

#tar xfvz pkgsrc.tar.gz
ist ja voll der overhead.
Code:
# cd /usr && ftp -o - ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-current/tar_files/pkgsrc.tar.gz | tar zxvf -
:)

auf jeden fall muss man das nicht erst nochmal rumkopieren, wenn man's gezogen hat. zieh es doch gleich nach /usr oder gib beim tar den kompletten pfad an.

edit:
3. nun ladet ihr euch das j2sdk herunter für linux:

ftp://ftp.informatik.hu-berlin.de/pub/Java/Linux/JDK-1.3.1/i386/FCS-02b/

(ich habe mich für die 1.3.1 entschieden, ihr könnt auch gerne die neueste beta nehmen [1.4.1] sollte auch gehen, haben ich allerdings nicht getestet) verschiebt nun das j2re-1.3.1-FCS-linux-i386.tar.bz2 nach /usr und entpackt es mit bzip2

Code:
#cd /usr/local

#cp <euer_verzeichniss_wo_j2sdk_liegt> .

#./j2sdk-1.3.1-02b-FCS-linux-i386.bin

nun ist das j2sdk installiert;
man kann auch das .bin von hand extrahieren, indem man sich das script anschaut und die noetigen schritte von hand nachvollzieht. man erhaelt als ergebnis dann ein weiteres executable *kotz*, welches aber nur ein selbstextrahierendes zip-archiv ist. das kann man dann natuerlich mit unzip(1) entpacken.

bei java 1.5.0_03 sind des weiteren verschiedene *.pack dateien in diesem zip enthalten, welche man mit bin/unpack200 auspacken muss. das steht alles in dem script, welches dem .bin voransteht.

wozu der aufwand? ich wuerde einen teufel tun und diese abartig gescripteten .bin "archive" als root ausfuehren, sogar wenn sie von sun kommen. wenn man da mal reinschaut, kriegt man die kraetze.

da fragt man sich doch, warum diese pappnasen nicht einfach _ein_ archiv verteilen. das mit der EULA, die man abnicken muss, kann ich ja noch verstehen, aber die gibts doch beim download schon. selbst dann wuerde es doch reichen, ein .tar.gz in ein .bin zu packen. stattdessen kriegt man ein script, welches ein executable auspackt, welches den tree auspackt und hat dann _trotzdem_ noch diese .pack teile, die ausgepackt werden muessen. was fuer ein schwachsinn.

bin ich der einzige, der sich bei selbstextrahierenden archiven die muehe macht, das ganze "von hand" auszupacken, und moeglichst wenig fremdcode auszufuehren?

</rant>
 
Zuletzt bearbeitet:
Zurück
Oben