私の教授は、この割り当てのメインメソッドを外部jarに提供することを決定し、バックエンドのコードを作成することになっています。このjarをプロジェクトに取り込み、Eclipse内で実行することに問題はありませんが、実行可能なjarをエクスポートしようとすると、次のエラーが発生します。
「指定された起動構成からメインメソッドが見つかりませんでした」
Eclipseで実行するたびにメインメソッドを確実に見つけることができるので、これはばかげているようですが、何が欠けていますか?jarを開いてManifest.mfファイルを取得し、外部jar内のメインであるクラスの名前を指定しようとしましたが、それでも見つけることができません。
プロジェクトのビルドパスとクラスパスにもjarを追加しましたが、違いはないようです。
マニフェストファイルには次のように書かれています。
Manifest-Version: 1.0
Class-Path: .
これは間違っていると思いますが、どうすれば正しく設定できますか?
-編集-
ビルド時にEclipseによって生成されるANTファイルは次のとおりです。
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project default="create_run_jar" name="Create Runnable Jar for Project Lab 1">
<!--this file was created by Eclipse Runnable JAR Export Wizard-->
<!--ANT 1.7 is required -->
<target name="create_run_jar">
<jar destfile="C:/lab.jar" filesetmanifest="mergewithoutmain">
<manifest>
<attribute name="Main-Class" value="edu.wmich.cs1120.la1.solution_gui.MainWindow"/>
<attribute name="Class-Path" value="."/>
</manifest>
<zipfileset excludes="META-INF/*.SF" src="C:/LA1_GUI.jar"/>
<fileset dir="C:/bin"/>
</jar>
</target>
さて、Main-Class属性を何に設定する必要があるかがわかりました。そのため、Manifest.mfを編集して、それが機能することを反映します。しかし、私はまだ混乱しています。特に次の行によって混乱しています。
filesetmanifest="mergewithoutmain"
zipfileset excludes
プロジェクトのメインを指定した場合、なぜそれを行うのですか?