ubuntuusers.de

Hello World kompilieren Java

Status: Gelöst | Ubuntu-Version: Ubuntu 12.04 (Precise Pangolin)
Antworten |

313373n3wb33

Avatar von 313373n3wb33

Anmeldungsdatum:
7. November 2012

Beiträge: 71

Hallo zusammen.

Mein versuch Java zu lernen steht wohl unter nem schlechten Stern. xD Hier ein Zitat:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
root@LiUb:/java/javatutorial.org.d# ls
helloworld.java

root@LiUb:/java/javatutorial.org.d# javac helloworld.java 
root@LiUb:/java/javatutorial.org.d# ls
helloworld.class  helloworld.java

root@LiUb:/java/javatutorial.org.d# java helloworld 
Exception in thread "main" java.lang.UnsupportedClassVersionError: helloworld : Unsupported major.minor version 51.0
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
	at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: helloworld. Program will exit.

root@LiUb:/java/javatutorial.org.d# cat helloworld.java


public class helloworld {

	public static void main (String[ ] args)
	{
		//Ausgabe Hello World!
		System.out.println("Hello World!");
	}
 }
root@LiUb:/java/javatutorial.org.d# 

MfG/Danke N3w

PS: Ich bin immer mit Root angemeldet weil ich in ner VM drin bin. In meiner Physikalischen würde ich das nicht machen. 😉

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17622

Wohnort: Berlin

313373n3wb33 schrieb:

root@LiUb:/java/javatutorial.org.d# java helloworld Exception in thread "main" java.lang.UnsupportedClassVersionError: helloworld : Unsupported major.minor version 51.0 }}}

Und in dem Tutorial lernt man die Klasse helloworld zu nennen - nicht etwa Helloworld oder HelloWorld?

Gut - was sagt die Fehlermeldung? Dass die Version deines Compilers nicht zur Laufzeit-JVM passt. Bitte mal eingeben:

1
2
java -version
javac -version

PS: Ich bin immer mit Root angemeldet weil ich in ner VM drin bin. In meiner Physikalischen würde ich das nicht machen. 😉

Verstehe ich nicht. Wieso muss man in der VM als Root angemeldet sein?

313373n3wb33

(Themenstarter)
Avatar von 313373n3wb33

Anmeldungsdatum:
7. November 2012

Beiträge: 71

Eigentlich hätte es HelloWorld.java heissen sollen aber solange ich die Klasse in dem Programm anpasse sollte es kein Problem sein, soweit ich weiss. (Edit: Hatte alles am anfang auch mit groß und kleinschreibung beachtet aber dann auf kleinschreibung geändert weils sowieso nicht gefunkt hat xD.)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11

root@LiUb:/home/gch# java -version

java version "1.6.0_27"
OpenJDK Runtime Environment (IcedTea6 1.12.6) (6b27-1.12.6-1ubuntu0.12.04.2)
OpenJDK Client VM (build 20.0-b12, mixed mode, sharing)

root@LiUb:/home/gch# javac -version
javac 1.7.0_25

root@LiUb:/home/gch# 

Man muss in der VM nicht als root angemeldet sein, aber ich mach das einfach aus gemütlichkeit. (EDIT: In meiner Physikalischen mach ich das eben nicht sonder verwende sudo wegen der Sicherheit.) Meine VM hat nur verbindung ins Internet wenn ich mich über nen Proxy verbinde. Ausserdem ist es ne Test Maschiene die von mir jederzeit zurückgesetzt werden kann.

Gruß N3w

snafu1

Avatar von snafu1

Anmeldungsdatum:
5. September 2007

Beiträge: 2133

Wohnort: Gelsenkirchen

Da sieht man's ja: Der Compiler erwartet 1.7, das JDK ist allerdings für Version 1.6 ausgelegt. Folglich solltest du dir ein aktuelles JDK installieren.

313373n3wb33

(Themenstarter)
Avatar von 313373n3wb33

Anmeldungsdatum:
7. November 2012

Beiträge: 71

Ich hatte zwar noch ein bischen Probleme die Versionen anzugleichen, da ich das noch nie gemacht habe, aber jetzt funktioniert das kompilieren und ausführen des Programmes.

Danke für die Hilfe. MfG N3w

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17622

Wohnort: Berlin

Eine Alternative wäre noch die Angabe -target für's Kompilieren gewesen:

1
 -target <release>          Generate class files for specific VM version

Hin und wieder sudo einzutippen ist kaum Arbeit - sobald es welche wird kann man den sudoers-file entsprechend bearbeiten.

Ein Test- und Übungssystem zu haben, das sich anders verhält als das eigentliche, das ist nicht sehr clever. Manche Programme laufen gar nicht, wenn von Root gestartet. Ich würde davon abraten.

binwiederda3

Anmeldungsdatum:
10. Dezember 2011

Beiträge: 108

Hallo ☺

Hab genau das gleiche Problem:

@ThinkPad-Edge-E320:~/helloworld$ javac -version
javac 1.7.0_25
@ThinkPad-Edge-E320:~/helloworld$ java -version
java version "1.6.0_27"
OpenJDK Runtime Environment (IcedTea6 1.12.6) (6b27-1.12.6-1ubuntu0.12.04.2)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)

weiß nur nicht, wie ich beide auf die gleiche Version bekomme. (das Paket "openjdk-7-jdk" ist bereits installiert)

greenmoon

Anmeldungsdatum:
10. März 2010

Beiträge: 269

Hallo,

Java/Tipps (Abschnitt „Verwendete-Java-Version-einstellen“) gelesen und ausprobiert, insbesondere JRE und SDK? Wenn ja was war da die Antwort des Systems?

binwiederda3

Anmeldungsdatum:
10. Dezember 2011

Beiträge: 108

Hey, vielen dank, hab die Seite vorhin nicht gefunden. Jetzt hab ichs eingestellt und es funktioniert ☺

Antworten |