Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Klassennahmen über Kommandenzeile-Argument mitteilen
Hallo,
ich kriege eine der Aufgaben von Bruce Eckel nicht hin. Der Code sieht so aus:
Code:
//: c12:E04_CommandLoad.java
//+M java E04_CommandLoad Gum Cookie
/****************** Exercise 4 ******************
* Modify SweetShop.java so that each type of
* object creation is controlled by a
* command-line argument. That is, if your
* command line is "java SweetShop Candy," then
* only the Candy object is created. Notice how
* you can control which Class objects are loaded
* via the command-line argument.
***********************************************/
class Candy {
static {
System.out.println("Loading Candy");
}
}
class Gum {
static {
System.out.println("Loading Gum");
}
}
class Cookie {
static {
System.out.println("Loading Cookie");
}
}
public class C4 {
public static void main(String[] args)
throws Exception {
for(int i = 0; i < args.length; i++)
Class.forName(args[i]);
}
}
wenn ich das Programm starte bekomme ich folgenden Output:
init:
deps-jar:
Compiling 1 source file to /media/disk/dev/NetBeansProjects/JavaApplication1/build/classes
compile:
run:
Exception in thread "main" java.lang.ClassNotFoundException: Candy
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at c10.C4.main(C4.java:37)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)
Es muss dann an meinen NetBeans Einstellungenungen liegen. Alle anderen Beispiele ohne Kommandenzeilen-Argumente liefen einwandfrei. Ich stehe im Moment auf dem Schlauch, das Argument wird doch richtig übertragen. Hmm, ich habe NetBeans 6.1 und Java 1.6.0
Unter Project Properties - Run steht bei mir c10.C4 als Main class und Candy als Argument. Ich würde gerne einen Screenshot beilegen, weiss aber nicht wie man hier Bilder uploaden kann.