Моя сборка отлично компилируется и работает с использованием файла build.xml
ниже.
Единственная проблема - я создаю банку, но она не запускается без ошибки Could not find or load main class
.
Я прочитал несколько ответов о переполнении стека на общую ошибку Could not find or load main class
. Однако я не могу определить, что я делаю неправильно, в моем build.xml
ниже.
build.xml
<?xml version="1.0" encoding="UTF-8"?>
<project default="run" name="My Project ">
<target name="run" depends="createjar">
<java classname="com.company.program.project.MyMainClass">
<classpath path="staging">
<fileset dir="C:\COMPANY\Eclipse\3.6-64\plugins">
<include name="org.eclipse.swt.*.jar" />
</fileset>
</classpath>
</java>
</target>
<target name="createjar" depends="compile">
<jar destfile="./builds/jars/swtgui.jar" basedir="./staging/com/company/program/project" filesetmanifest="mergewithoutmain">
<manifest>
<attribute name="Main-Class" value="com.company.program.project.MyMainClass" />
</manifest>
<!--
<fileset dir="./bin/com/company/program/project" includes="./*.class" />
-->
<fileset dir="C:\COMPANY\Eclipse\3.6-64\plugins\" includes="org.eclipse.swt.win32.win32.x86_64_3.6.0.v3650b.jar" />
</jar>
</target>
<target name="compile">
<javac includeantruntime="false" srcdir="./src" destdir="staging">
<classpath>
<fileset dir="C:\COMPANY\Eclipse\3.6-64\plugins">
<include name="org.eclipse.swt.*.jar" />
</fileset>
</classpath>
</javac>
</target>
<record name="./MyMainClass.log" loglevel="verbose" action="start"/>
MyProject.log
createjar:
[jar] found a total of 0 manifests in 2 resource collections
[jar] A$1.class added as A$1.class is outdated.
[jar] A$10.class added as A$10.class is outdated.
[jar] A$11.class added as A$11.class is outdated.
[jar] ...
[jar] No sources found.
[jar] Building jar: C:\my_workspace\my_project\builds\jars\swtgui.jar
[jar] adding directory META-INF/
[jar] adding entry META-INF/MANIFEST.MF
[jar] adding entry A$1.class
[jar] adding entry A$10.class
[jar] adding entry A$11.class
[jar] adding entry org.eclipse.swt.win32.win32.x86_64_3.6.0.v3650b.jar
[jar] No Implementation-Title set.No Implementation-Version set.No Implementation-Vendor set.
Location: C:\my_workspace\my_project\build.xml:16:
createjar: duration 0 seconds
Основной класс указан правильно. Путь к классу (basedir) указан правильно. Он ожидает, пока компиляция завершится для выполнения. И т.д.
Я оставил свой лог-файл ниже, но, похоже, ant
не дает никаких сведений о том, почему он не может найти мой основной класс. Кто-нибудь сразу замечает что-то не так с этими двумя файлами?