Konnte nicht gefunden oder geladen werden Java main class
Guten Abend Stack Overflow!
Ich angefangen, Java zu lernen schon ein paar Tage her, aber nicht mit einem IDE-sobald mein Rechner etwas langsam ist. So, ich habe mich für Sublime Text, und kompilieren Sie die Dinge mit ant auf die cmd, da es scheint, die meisten vernünftigen Sache zu tun.
Heute habe ich gestartet ( zumindest versucht ) Folgen eine Reihe von LWJGL tutorials (die sind wirklich cool), von ThinMatrix, aber ich kann nicht verwalten, lösen eine Fehlermeldung, die ich bekomme jedes mal wenn ich versuche zu kompilieren "Projekt".
Dies ist der Aufbau meines Projekts:
- LWJGL
- src
- com
- Spiel
- test
MainGameLoop.java - renderEngine
DisplayManager.java
- test
- Spiel
- com
build.xml
- src
Und meine Damen und Herren... build.xml (folgende Ant offiziellen "HelloWorld" - tutorial):
<project name="LWJGL" basedir="." default="main">
<property name="src.dir" value="src"/>
<property name="build.dir" value="build"/>
<property name="classes.dir" value="${build.dir}/classes"/>
<property name="lib.dir" value="lib"/>
<property name="jar.dir" value="${build.dir}/jar"/>
<property name="main-class" value="com.game.test.MainGameLoop"/>
<path id="classpath">
<fileset dir="${lib.dir}" includes="**/*.jar" />
</path>
<target name="clean">
<delete dir="${build.dir}"/>
</target>
<target name="compile">
<mkdir dir="${classes.dir}"/>
<javac srcdir="${src.dir}" destdir="${classes.dir}" includeantruntime="false" classpathref="classpath" />
</target>
<target name="jar" depends="compile">
<mkdir dir="${jar.dir}"/>
<jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}">
<manifest>
<attribute name="Main-Class" value="${main-class}"/>
</manifest>
</jar>
</target>
<target name="run" depends="jar">
<java jar="${jar.dir}/${ant.project.name}.jar" fork="true">
<jvmarg value="-Djava.library.path=lib/natives-win" />
</java>
</target>
<target name="clean-build" depends="clean,jar"/>
<target name="main" depends="clean,run"/>
Jedes mal, wenn ich laufen ant auf der Kommandozeile, innerhalb der root-Ordner von meinem Projekt, ich bekomme diese:
[java] Error: Could not find or load main class com.game.test.MainGameLoop
[java] Java Result: 1
Ich bin kämpfen, um zu verstehen, was ist die Wurzel problem dieses, dass ich irgendwie sexuell missbraucht Google-Suche versucht eine Antwort zu finden auf der Java-Foren, Blogs und sogar hier...
Ich in der Regel nicht wie das Auffüllen von Stack Overflow mit noob-Fragen, aber ich muss zugeben, ich weiß nicht, was zu tun ist.
Vielen Dank im Voraus!
package test; import org.lwjgl.opengl.Display; import renderEngine.DisplayManager; public class MainGameLoop { public static void main(String[] args) { DisplayManager.createDisplay(); while( !Display.isCloseRequested() ) { DisplayManager.updateDisplay(); } DisplayManager.closeDisplay(); } }
Sieht aus wie Ihre package-name ist falsch, für diese Klasse. Es sollte com.Spiel.test. Ich schlage vor, Sie tun ein wenig Lesen auf java als Programmiersprache.
InformationsquelleAutor MobsterSquirrel | 2015-09-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihres Codes hängt von Bibliotheken. Sie haben erfolgreich die Bibliotheken in den classpath zum kompilieren von code, und haben somit erfolgreich erstellt eine ausführbare jar-Dateien mit Ihren Klassen. Aber diese Klassen abhängen, die Bibliotheken zu laufen. Und beim ausführen der jar-Datei, die Sie nicht secify überall, dass Java sollte für Klassen, die in Bibliotheken in Ergänzung zu Ihrer jar-Datei.
Sehen Generieren manifest class-path von <classpath> in Ant für wie Sie eine Class-Path-Eintrag, um das manifest der executbale jar-Datei. Achtung: die Pfade zu den Bibliotheken müssen relatie auf den Pfad der jar-Datei.
Ant ist ein bisschen veraltet. Wenn ich du wäre, würde ich versuchen, mit gradle, die hat ein ordentliches application plugin tut alles für Sie, und vieles mehr.
InformationsquelleAutor JB Nizet
Habe ich es endlich geschafft, dieses problem zu lösen, dass ich Schwierigkeiten hatte mit der Hilfe von einem guten Freund von mir. Es gibt zwei schwierige Punkte:
Dieses Bild zeigt, wie habe ich auskommentiert, die "Class-Path" - Attribut, dass ich verwenden würde, die für die Bewältigung der Abhängigkeiten des Projekts, und ersetzt es mit dem "zipgroupfileset". Ich hoffe, dass Ihnen helfen, wie gut.
InformationsquelleAutor Mostafa Man
Kleine Sache, die kann die Ursache für dieses Problem ist die Verwendung von Großbuchstaben in Datei-Erweiterung. Zum Beispiel können Sie nicht verwenden
MainGameLoop.Java
, Die richtige Erweiterung sollte in Kleinbuchstaben geschrieben sein wie unten.Bitte überprüfen Sie, dass die erste.
InformationsquelleAutor tk_