Help!
Ik snap er niks van...
Ik heb een klasse in een package gestopt op de volgende wijze:
Deze klasse heb ik gewoon gecompiled en aan een jar-file toegevoegd op de volgende wijze:
Deze jar-file heb ik toegevoegd aan mijn library-directory. En de jar-file toegevoegd aan mijn CLASSPATH variabele.
Mijn CLASSPATH ziet er nu zo uit:
Vervolgens maak ik nog een klasse:
Ook die compile ik en maak ik een jar file:
In mijn MANIFEST.MF staat overigens:
Nu wil ik de tweakers.jar runnen met:
Ik krijg dan:
Echter als ik als volgt run:
Dat werkt dus wel! Iemand enig idee hoe dit kan en hoe ik dit zou kunnen oplossen?
Bedankt!
Ik snap er niks van...
Ik heb een klasse in een package gestopt op de volgende wijze:
code:
1
2
3
4
5
| package net.tweakers.util;
public abstract class Simple {
public abstract void simple();
} |
Deze klasse heb ik gewoon gecompiled en aan een jar-file toegevoegd op de volgende wijze:
code:
1
2
3
4
| javac Simple.java #levert Simple.class op mkdir -p net/tweakers/util mv Simple.class net/tweakers/util/ jar cvf simple.jar net |
Deze jar-file heb ik toegevoegd aan mijn library-directory. En de jar-file toegevoegd aan mijn CLASSPATH variabele.
Mijn CLASSPATH ziet er nu zo uit:
code:
1
2
| [harm@aphrodite tweakers]$ echo $CLASSPATH /home/harm/javalibs/simple.jar:. |
Vervolgens maak ik nog een klasse:
code:
1
2
3
4
5
6
7
8
9
10
11
| package net.tweakers;
import net.tweakers.util.*;
public class Tweakers extends Simple {
public void simple() {
System.out.println("Simple!");
}
public static void main(String args[]) {
new Tweakers().simple();
}
} |
Ook die compile ik en maak ik een jar file:
code:
1
2
3
4
| javac Tweakers.java mkdir -p net/tweakers mv Tweakers.class net/tweakers jar cmf MANIFEST.MF tweakers.jar net |
In mijn MANIFEST.MF staat overigens:
code:
1
2
3
| Manifest-Version: 1.0 Created-By: 1.4.0 (Sun Microsystems Inc.) Main-Class: net.tweakers.Tweakers |
Nu wil ik de tweakers.jar runnen met:
code:
1
| java -jar -classpath $CLASSPATH tweakers.jar |
Ik krijg dan:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| [harm@aphrodite bras]$ java -jar -cp $CLASSPATH tweakers.jar
Exception in thread "main" java.lang.NoClassDefFoundError: net/tweakers/util/Simple
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:509)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:246)
at java.net.URLClassLoader.access$100(URLClassLoader.java:54)
at java.net.URLClassLoader$1.run(URLClassLoader.java:193)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
at java.lang.ClassLoader.loadClass(ClassLoader.java:262)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:322) |
Echter als ik als volgt run:
code:
1
2
| [harm@aphrodite bras]$ java -classpath tweakers.jar:$CLASSPATH net.tweakers.Tweakers Simple! |
Dat werkt dus wel! Iemand enig idee hoe dit kan en hoe ik dit zou kunnen oplossen?
Bedankt!