$ cat Hello.java
// Ohjelma tulostaa tekstin Hello world!
class Hello {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
$ javac Hello.java
$ java Hello.class
Exception in thread "main" java.lang.NoClassDefFoundError: Hello/class
Caused by: java.lang.ClassNotFoundException: Hello.class
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:336)
Could not find the main class: Hello.class. Program will exit.
// Ohjelma tulostaa tekstin Hello world!
class Hello {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
$ javac Hello.java
$ java Hello.class
Exception in thread "main" java.lang.NoClassDefFoundError: Hello/class
Caused by: java.lang.ClassNotFoundException: Hello.class
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:336)
Could not find the main class: Hello.class. Program will exit.
Vastaukset 3
Vanhimmat
Pitää ajaa näin:
$ javac Hello
Java on muuten ärsyttävin ja vituttavin kieli heti Brainfuckin jälkeen. Sorry, oli pakko sanoo...
Noin sanoo ihmiset jotka ei osaa javaa. Mikä siinä muka on niin huonoa? Java on puhdas oliokieli ja sen syntaksi on lähellä esim. C :aa ilman C :n huonoja puolia toki, C :han ei ole mikään oikea puhdas oliokieli vaan hybridi.
Koska Javan primitiivityypit (int,float,...) eivät ole oliota, joten Java ei voi mitenkään olla 'puhdas' oliokieli. Myöskään peruslaskuoperaatiot eivät ole minkään luokan metodeja, joten Java on hybridi (siis kahdestakin syystä). C on hybridi sekä multiparadigmakieli.
Puhtaita OO-kieliä ovat esim. Smalltalk ja Ruby.
Sunin markkinointiosasto on taas hieman kusettanut Java/Olio-fanipojuja.
Taas vaikuttaa että OO-fanit tuntee vain yhden paradigman.