J
JavaNooby
Gast
Guten Morgen,
Vlt kann mir jemand bei folgendem Problem helfen,
Ich versuche ein Java3D Projekt in ein Jar file zu packen. (Keine Angst ich hab mich schon durch etliche Beiträge und die Faqs durchgewühlt). Das Problem ist, entweder ich steh völlig aufm Schlauch oder ich bin einfach nur zu blöd
Hier ist mal der Code:
Und hier die Manifest Datei:
Ich habe denk ich mal eigentlich alles richtig gemacht, ich hab nur eine Klasse (Test) mit einer Main-Methode und kein package.
Beim Starten des Jars kommt folgende Fehlermeldung:
Could not find the main Class. Programm will exit.
Aus der Entwicklungsumgebung Eclipse lässt sich das Programm problemslos starten.
Mein nächster Schritt war einfach mal die Test.class in der Eingabeaufforderung auszuführen (java Test)
Hier kommt nun folgender fehler:
Irgendwie versteh ich das nicht ganz, ich hab doch eine Main Methode in der Klasse drin, ich habe auch kein package oder so dass ich den Classpath ändern müsste oder?
Wie gesagt in Eclipse lässt sich dass ding Problemlos starten. Ich hab auch noch geschaut ich verwende auch keine imporierten Bibliotheken.
Wenn ich folgendes eingebe: java -cp . Test kommt folgende Fehlermeldung:
Kann es sein dass Java3D componenten nicht im normalen Jre 6* mit drin sind?
Kann mir da jemand weiterhelfen?
Vielen dank erstmal für die Mühe des Durchlesens ^^
Mfg,
JavaNooby :meld:
Vlt kann mir jemand bei folgendem Problem helfen,
Ich versuche ein Java3D Projekt in ein Jar file zu packen. (Keine Angst ich hab mich schon durch etliche Beiträge und die Faqs durchgewühlt). Das Problem ist, entweder ich steh völlig aufm Schlauch oder ich bin einfach nur zu blöd
Hier ist mal der Code:
Code:
import java.awt.*;
import com.sun.j3d.utils.geometry.*;
import com.sun.j3d.utils.universe.*;
import javax.media.j3d.*;
import javax.vecmath.*;
import com.sun.j3d.utils.image.*;
public class Test extends Frame{
/**
*
*/
private static final long serialVersionUID = 1L;
private String pictureUrl="C:\\1.jpg";
private double xRotator=1;
public static void main(String[] args) {
new Test();
}
public Test()
{
setLayout(new BorderLayout());
GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
Canvas3D c = new Canvas3D(config);
this.add(c);
this.setSize(200,200);
this.setUndecorated(true);
this.setVisible(true);
this.setLocation(540,380);
BranchGroup scene = createSceneGraph();
SimpleUniverse u = new SimpleUniverse(c);
u.getViewingPlatform().setNominalViewingTransform();
u.addBranchGraph(scene);
}
public BranchGroup createSceneGraph() {
BranchGroup branchGroup = new BranchGroup();
Color3f whiteColor = new Color3f(1.0f, 1.0f, 1.0f);
Appearance appearance = new Appearance();
Material material = new Material(whiteColor, whiteColor, whiteColor, whiteColor, 100.0f);
material.setLightingEnable(true);
appearance.setMaterial(material);
Texture texture = new TextureLoader(pictureUrl, this).getTexture();
appearance.setTexture(texture);
TextureAttributes textureAttributes = new TextureAttributes();
textureAttributes.setTextureMode(TextureAttributes.MODULATE);
appearance.setTextureAttributes(textureAttributes);
Transform3D transform3D = new Transform3D();
TransformGroup transformGroup = new TransformGroup();
transformGroup.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
BoundingSphere boundingSphere = new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 100.0);
Alpha alphaMover = new Alpha(-1,Alpha.INCREASING_ENABLE,2000,2000,2000,2000,1000,2000,2000,1000);
Point3f positionOfLight = new Point3f(-1f, -0.5f, 1.5f);
Point3f positionOfLight2 = new Point3f(1f, -0.5f, 1.5f);
Point3f attenuationOfLight =new Point3f(0.4f, 0.0f, 0f);
PointLight pointLight = new PointLight(whiteColor,positionOfLight,attenuationOfLight);
PointLight pointLight2 = new PointLight(whiteColor,positionOfLight2,attenuationOfLight);
pointLight.setInfluencingBounds(boundingSphere);
pointLight2.setInfluencingBounds(boundingSphere);
Box cube = new Box(0.6f, 0.6f, 0.6f, Sphere.GENERATE_TEXTURE_COORDS + Sphere.GENERATE_NORMALS, appearance);
RotationInterpolator pos = new RotationInterpolator(alphaMover, transformGroup);
transform3D.rotX(xRotator);
pos.setSchedulingBounds(boundingSphere);
pos.setAxisOfRotation(transform3D);
transformGroup.addChild(pointLight);
transformGroup.addChild(pointLight2);
transformGroup.addChild(cube);
transformGroup.addChild(pos);
branchGroup.addChild(transformGroup);
branchGroup.compile();
return branchGroup;
}
}
Und hier die Manifest Datei:
Code:
Manifest-Version: 1.0
Main-Class: Test
Ich habe denk ich mal eigentlich alles richtig gemacht, ich hab nur eine Klasse (Test) mit einer Main-Methode und kein package.
Beim Starten des Jars kommt folgende Fehlermeldung:
Could not find the main Class. Programm will exit.
Aus der Entwicklungsumgebung Eclipse lässt sich das Programm problemslos starten.
Mein nächster Schritt war einfach mal die Test.class in der Eingabeaufforderung auszuführen (java Test)
Hier kommt nun folgender fehler:
Code:
C:\workspaces\Games\Test>java Test
Exception in thread "main" java.lang.NoClassDefFoundError: Test
Caused by: java.lang.ClassNotFoundException: Test
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Irgendwie versteh ich das nicht ganz, ich hab doch eine Main Methode in der Klasse drin, ich habe auch kein package oder so dass ich den Classpath ändern müsste oder?
Wie gesagt in Eclipse lässt sich dass ding Problemlos starten. Ich hab auch noch geschaut ich verwende auch keine imporierten Bibliotheken.
Wenn ich folgendes eingebe: java -cp . Test kommt folgende Fehlermeldung:
Code:
C:\workspaces\Games\Test>java -cp . Test
Exception in thread "main" java.lang.NoClassDefFoundError: javax/media/j3d/Bound
s
Caused by: java.lang.ClassNotFoundException: javax.media.j3d.Bounds
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Kann es sein dass Java3D componenten nicht im normalen Jre 6* mit drin sind?
Kann mir da jemand weiterhelfen?
Vielen dank erstmal für die Mühe des Durchlesens ^^
Mfg,
JavaNooby :meld: