# problem mit javac und der jvm [solved]

## cHeFr0cKaH

Moin!

Ich hab seit gestern Abend ein Problem mit Java. Und zwar kompiliert scite einfach nicht mehr. Manuell über die Konsole funktioniert auch nicht.

Wenn ich javac eintippe kriege ich folgende Meldung: 

```
javac

* javac is not available for blackdown-jre-1.4.2 on i686

* IMPORTANT: some Java tools are not available on some VMs on some architectures

```

Ok, soweit so gut. Die Fehlermeldung ist soweit klar. Nur warum frage ich mich? Außer einem Worldupdate, was ich vorgestern gemacht hab, hab ich nichts großartig am System verändert.

Ich habe dann die blackdown-jre unmerged und nochmal emerged. Leider ohne Erfolg. Installiert wird sie zwar. 

Kriege aber diese Meldung zum Schluss:

```
!!! ERROR: The active vm could not be found

Now using blackdown-jre-1.4.2 as your generation-2 system JVM

 *  blackdown-jre-1.4.2.03 set as the default system-vm.

 * JREs and 1.5+ JDKs are not supported for use with generation-1.

 * This is because generation-1 is only for use for building packages.

 * Only generation-2 should be used by end-users,

 * where all JREs and JDKs will be available

 * No system nsplugin currently set.

 * Setting nsplugin to blackdown-jre-1.4.2...

 * You can change nsplugin with eselect java-nsplugin.

>>> Regenerating /etc/ld.so.cache...

>>> dev-java/blackdown-jre-1.4.2.03-r13 merged.

>>> No packages selected for removal by clean

>>> Auto-cleaning packages...

>>> No outdated packages were found on your system.

 * GNU info directory index is up-to-date.

```

Ich frag mich nur warum der die active VM nicht finden kann??

Ich hab dann auf gentoo-wiki ein kleines howto gefunden: http://de.gentoo-wiki.com/HOWTO_Java_und_Firefox

Hat mir nur leider net weitergeholfen. Auch ein java-config -s bzw -S "mein java" hat nichts gebracht.

Ich frag mich was da schief gegangen ist?!

mfg

cHeFr0cKaH

bye!Last edited by cHeFr0cKaH on Fri Apr 06, 2007 8:35 am; edited 1 time in total

----------

## musv

Was kommt bei javaconfig -L?

Sollte sowas sein:

```

1)      Sun JDK 1.4.2.13 [sun-jdk-1.4]

2)      Sun JDK 1.5.0.11 [sun-jdk-1.5]

*)      Sun JDK 1.6.0 [sun-jdk-1.6]

```

 *Quote:*   

> 
> 
> ```
> 
> ...Now using blackdown-jre-1.4.2 as your generation-2 system JVM...
> ...

 

Das macht mich etwas stutzig. Die 1.4.2. sollte eigentlich generation-1 sein.

----------

## cHeFr0cKaH

Hi!

Also ein java-config -L gibt das hier bei mir aus: 

```
java-config -L

The following VMs are available for generation-2:

1)      Blackdown JRE 1.4.2.03 [blackdown-jre-1.4.2]

*)      Sun JDK 1.5.0.10 [sun-jdk-1.5]

```

Ich hab grad einfach nochmal die jdk von sun emerged und dann mit 

```
java-config -s sun-jdk
```

 es doch tatsächlich geschafft das javac wieder kompiliert. 

Nur so noch aus reiner Neugier. Was hat es denn mit dieser generation 1 und generation 2 zutun ?? 

mfg

cHeFr0cKaH

bye!

----------

## Mr. Anderson

"Generation 1": < JVM 1.5 (auch als Java 5 bekannt)

"Generation 2": >= JVM 1.5

Als System-VM wird eine VM der 1. Generation empfohlen, da es mit den neueren noch diverse Probleme gibt. Unter Anderem wird nicht alles sauber kompiliert mit javac >=1.5

Für den normalen User kann man fast immer eine VM der 2. Generation nehmen (ich würde da eine JVM >=1.6 empfehlen  :Wink: ).

Dass die Blackdown-VM nicht funktioniert hat, dürfte daran liegen, dass Du nur die JRE und nicht das JDK installiert hast. Die JRE ist nur die Laufzeitumgebung ohne Compiler & Co. Die JVM ist die JRE + Compiler & Co.

Für das blackdown-jdk würde sich also

```
emerge --unmerge blackdown-jre && emerge blackdown-jdk
```

anbieten.

----------

## cHeFr0cKaH

Hi!

@Mr Anderson: Ohh...stimmt. Die JDK fehlte   :Embarassed: 

Also versteh ich das richtig, Generation 1 ist für's System gedacht?! Also zum Beispiel u.a für den Firefox, der ja auch Java verwenden kann. 

Und die 2.Generation ist für den user der einfach nur seinen Krempel programmiert. So wie ich*g*

Mmm ok ich hab die blackdown-jre unmerged und die blackdown jdk emerged. Ich hab auch noch die jdk von sun drauf, weil die etwas aktueller ist als die blackdown. Wenn ich jetzt aber mittels java-config -s name-der-jdk eingebe, krieg ich diese Fehlermeldung:

```

!!! ERROR: Could not find a vm matching: sun-jdk-1.5.0.10/
```

Das Gleiche gilt wenn ich es mit der blackdown-jdk versuche. Kompilieren tut scite soweit alles wieder. Mmm naja...

mfg

cHeFr0cKaH

bye!

----------

## Mr. Anderson

Nicht ganz. Es ist n bissl komplizierter. Firefox wird vermutlich die Benutzer-VM verwenden. Bin mir da aber nicht sicher. Die User-VM wird im normalen Betrieb afaik immer verwendet, wenn nicht explizit anders angegeben/gefordert.

Es gibt auch eine recht übersichtliche Dokumentation zu Java und Gentoo:

http://www.gentoo.org/doc/de/java.xml

anstelle des kompletten VM-Namens kannst Du auch die Nummer der Zeile angeben, in der er steht. Zum Beispiel:

```
$ java-config -L

The following VMs are available for generation-2:

*)      Sun JDK 1.5.0.11 [sun-jdk-1.5]

2)      Sun JDK 1.6.0 [sun-jdk-1.6]

$ java-config -s 2

Now using sun-jdk-1.6 as your user JVM

$ java-config -L

The following VMs are available for generation-2:

1)      Sun JDK 1.5.0.11 [sun-jdk-1.5]

*)      Sun JDK 1.6.0 [sun-jdk-1.6]
```

----------

## cHeFr0cKaH

Also ein java-config -L gibt bei mir das hier aus:

```
java-config -L

The following VMs are available for generation-2:

1)      Blackdown JDK 1.4.2.03 [blackdown-jdk-1.4.2]

*)      Sun JDK 1.5.0.10 [sun-jdk-1.5]

```

Wenn aber beide, die blackdown und die sun, für generation2 sind. Welche soll ich denn dann als System JVM nehmen ?

mfg

cHeFr0cKaH

bye!

----------

## Mr. Anderson

Ok... das ist jetzt etwas unerwartet. Was sagt denn java-config-1?

----------

## cHeFr0cKaH

java-config-1 gibt das hier aus:

```
java-config-1

Usage: java-config [ OPTIONS ]

Options:

 << -h arg1[,arg2,...] --help=arg1[,arg2,...] >>

    List all command line options with --help , for command specific long help

    messages use --help=command (ex. --help=javac) or all long help messages

    with --help=*

```

----------

## franzf

 *cHeFr0cKaH wrote:*   

> Wenn ich jetzt aber mittels java-config -s name-der-jdk eingebe, krieg ich diese Fehlermeldung:
> 
> ```
> 
> !!! ERROR: Could not find a vm matching: sun-jdk-1.5.0.10/
> ...

 

Ich darf raten:

Du gehst in der Console nach /opt und tippst b <tab> <enter>.

Dummerweise ist das dann ein Verzeichnis, wie du am / am Ende deiner Fehlermeldung erkennen kannst  :Wink: 

Ich hoffe zumindest dass das dein Problem war...

Grüße

Franz

----------

## cHeFr0cKaH

@franzf: Ohh..ja..genau das war's   :Embarassed:   . Danke dir!!  :Smile: 

mfg

cHeFr0cKaH

bye!

----------

## Mr. Anderson

 *cHeFr0cKaH wrote:*   

> java-config-1 gibt das hier aus:
> 
> ```
> java-config-1
> 
> ...

 

Tja, das hab ich von meiner Faulheit. Ich hatte unterstellt, dass Du Dir das -L am Ende dazudenkst  :Wink: . Also:

```
java-config-1 -L
```

----------

## cHeFr0cKaH

@Mr. Anderson: Mmm in letzter Zeit überseh ich viele Dinge und mir passieren viel zu viele kleine, dumme Fehler  :Embarassed:  . Windoof hat mich wieder abstumpfen lassen*g*. Naja...sobald Cedega endich lüppt, zogge ich unter Linux  :Smile: . 

Ach ja..ein java-config-1 -L gibt das hier aus:

```

java-config-1 -L

The following JDKs are available for generation-1:

*)      Blackdown JDK 1.4.2.03 [blackdown-jdk-1.4.2.03]

```

Schaut soweit ok aus  :Smile: 

mfg

cHeFr0cKaH

bye!

----------

