2017-03-13 13 views
3

Java Swingアプリケーションを作成しましたが、これを実行可能ファイルjarとしてエクスポートします。 にアプリを作成しました。それは以下の構造を持ちます: enter image description here ここで、フォルダmysqlconnectorにはjarファイルも含まれています。 1.最初にの指示に従ってEclipseからRunnable jarとしてエクスポートしようとしました。私はseo.jarを作成したが、私はjava -jar seo.jarにより、端末から、それを実行しようとすると、私はエラーを取得する:Javaスイングアプリケーションから実行可能なjarファイルを作成できません

Error: Could not find file connectionprops.properties

私はjarをチェックし、私はそれがファイルconnectionprops.propertiesが含まれていないことがわかりました。手動でconnectionprops.propertiesjarファイルに追加しても、問題は残ります。

2.は、その後、私は内容をmanifest.mfという名前manifestファイル作ってみました:

Main-Class: bin.main.MainClass //also tried Main-Class: MainClass 

を私はフォルダseomanifest.mfを置いて、私はターミナルで次のコマンドを与えた:

jar -cvfm seo.jar manifest.mf * 

jarを作成した後、コマンド:

jar -tvf seo.jar 

は私に次のように出力できます:

0 Wed Mar 15 09:13:26 EET 2017 META-INF/ 
101 Wed Mar 15 09:13:26 EET 2017 META-INF/MANIFEST.MF 
0 Fri Dec 09 14:00:06 EET 2016 arial-unicode-ms/ 
23275812 Fri Dec 09 14:00:06 EET 2016 arial-unicode-ms/ARIALUNI.TTF 
2426 Fri Dec 09 14:00:06 EET 2016 arial-unicode-ms/arial-unicode-ms.png 
98 Fri Dec 09 14:00:06 EET 2016 arial-unicode-ms/myfontsfree.txt 
23275812 Fri Dec 09 13:59:58 EET 2016 ARIALUNI.TTF 
0 Mon Mar 13 11:35:16 EET 2017 bin/ 
0 Mon Mar 13 09:03:32 EET 2017 bin/gui/ 
5702 Mon Mar 13 09:03:32 EET 2017 bin/gui/GuiFrame.class 
73666 Mon Mar 13 09:03:24 EET 2017 bin/gui/img.png 
0 Wed Mar 15 09:10:16 EET 2017 bin/main/ 
1961 Mon Mar 13 09:03:32 EET 2017 bin/main/ReadProperties.class 
1007 Mon Mar 13 11:30:24 EET 2017 bin/main/MainClass.class 
0 Mon Mar 13 11:29:12 EET 2017 bin/main/resources/ 
157 Mon Mar 13 11:29:12 EET 2017 bin/main/resources/connectionprops.properties 
0 Mon Mar 13 09:03:32 EET 2017 bin/listeners/ 
5395 Mon Mar 13 09:03:32 EET 2017 bin/listeners/RegisterIdListener.class 
5065 Mon Mar 13 09:03:32 EET 2017 bin/listeners/PayIdListener.class 
5081 Mon Mar 13 09:03:32 EET 2017 bin/listeners/StarToBirdListener.class 
5095 Mon Mar 13 09:03:32 EET 2017 bin/listeners/DeleteStarListener.class 
648 Mon Mar 13 09:03:32 EET 2017 bin/listeners/GoBackListener.class 
2707 Mon Mar 13 09:03:32 EET 2017 bin/listeners/DeleteListener.class 
73666 Mon Mar 13 09:03:24 EET 2017 bin/listeners/img.png 
2612 Mon Mar 13 09:03:32 EET 2017 bin/listeners/NewYearListener.class 
6023 Mon Mar 13 09:03:32 EET 2017 bin/listeners/PassListener.class 
6710 Mon Mar 13 09:03:32 EET 2017 bin/listeners/AllListener.class 
3523 Mon Mar 13 09:03:32 EET 2017 bin/listeners/PdfListener.class 
7011 Mon Mar 13 09:03:32 EET 2017 bin/listeners/NewStarListener.class 
6620 Mon Mar 13 09:03:32 EET 2017 bin/listeners/PaidIdListener.class 
2644 Mon Mar 13 09:03:32 EET 2017 bin/listeners/PayListener.class 
6737 Mon Mar 13 09:03:32 EET 2017 bin/listeners/GotIdListener.class 
6671 Mon Mar 13 09:03:32 EET 2017 bin/listeners/ToBirdsListener.class 
5474 Mon Mar 13 09:03:32 EET 2017 bin/listeners/ReportsListener.class 
5385 Mon Mar 13 09:03:32 EET 2017 bin/listeners/NewListener.class 
2892 Mon Mar 13 09:03:32 EET 2017 bin/listeners/RegisterListener.class 
0 Mon Mar 13 11:35:16 EET 2017 bin/META-INF/ 
53 Mon Mar 13 11:35:16 EET 2017 bin/META-INF/MANIFEST.MF 
73666 Mon Mar 13 09:03:24 EET 2017 bin/img.png 
0 Mon Mar 13 11:35:18 EET 2017 classes/ 
0 Mon Mar 13 11:35:18 EET 2017 classes/artifacts/ 
0 Mon Mar 13 11:35:18 EET 2017 classes/artifacts/seo_jar/ 
3406481 Mon Mar 13 11:35:18 EET 2017 classes/artifacts/seo_jar/seo.jar 
157 Sun Jan 22 18:26:06 EET 2017 connectionprops.properties 
2148384 Mon Nov 14 17:22:10 EET 2016 itextpdf-5.5.4.jar 
31 Mon Mar 13 09:27:02 EET 2017 manifest.mf 
0 Thu Dec 08 14:32:48 EET 2016 mysqlconnector/ 
960374 Fri Oct 17 08:05:36 EEST 2014 mysqlconnector/mysql-connector-java-5.1.34-bin.jar 
1358 Fri Mar 10 09:57:22 EET 2017 seo.iml 
0 Wed Mar 15 09:11:32 EET 2017 src/ 
0 Wed Feb 01 15:01:04 EET 2017 src/gui/ 
73666 Fri Dec 09 13:56:32 EET 2016 src/gui/img.png 
5617 Wed Feb 01 12:15:26 EET 2017 src/gui/GuiFrame.java 
0 Wed Mar 15 09:08:44 EET 2017 src/main/ 
601 Fri Mar 03 19:11:24 EET 2017 src/main/MainClass.java~ 
1315 Sun Jan 22 18:30:54 EET 2017 src/main/ReadProperties.java 
1060 Mon Mar 13 11:30:24 EET 2017 src/main/MainClass.java 
0 Mon Mar 13 11:27:02 EET 2017 src/main/resources/ 
157 Sun Jan 22 18:26:06 EET 2017 src/main/resources/connectionprops.properties 
48 Wed Mar 15 09:08:32 EET 2017 src/main/MANIFEST.MF 
0 Fri Mar 10 10:55:40 EET 2017 src/listeners/ 
4761 Wed Feb 01 15:33:12 EET 2017 src/listeners/DeleteStarListener.java 
5330 Fri Mar 10 10:55:38 EET 2017 src/listeners/PaidIdListener.java 
5268 Fri Mar 10 10:55:40 EET 2017 src/listeners/GotIdListener.java 
5233 Fri Mar 10 10:55:40 EET 2017 src/listeners/ToBirdsListener.java 
5217 Wed Feb 01 15:33:52 EET 2017 src/listeners/RegisterIdListener.java 
405 Wed Feb 01 15:32:56 EET 2017 src/listeners/GoBackListener.java 
2361 Wed Feb 01 12:13:34 EET 2017 src/listeners/PdfListener.java 
5761 Fri Mar 10 10:55:40 EET 2017 src/listeners/AllListener.java 
4700 Wed Feb 01 15:33:30 EET 2017 src/listeners/PayIdListener.java 
5165 Fri Mar 10 10:15:20 EET 2017 src/listeners/NewListener.java 
4717 Wed Feb 01 15:33:18 EET 2017 src/listeners/StarToBirdListener.java 
5222 Fri Mar 10 10:12:06 EET 2017 src/listeners/ReportsListener.java 
5922 Fri Mar 10 10:17:32 EET 2017 src/listeners/PassListener.java 
73666 Fri Dec 09 13:56:32 EET 2016 src/listeners/img.png 
2333 Wed Feb 01 12:13:34 EET 2017 src/listeners/NewYearListener.java 
6827 Wed Feb 01 15:33:36 EET 2017 src/listeners/NewStarListener.java 
2008 Fri Mar 10 10:14:06 EET 2017 src/listeners/PayListener.java 
2162 Fri Mar 10 10:15:20 EET 2017 src/listeners/RegisterListener.java 
1982 Fri Mar 10 10:15:20 EET 2017 src/listeners/DeleteListener.java 
73666 Fri Dec 09 13:56:32 EET 2016 src/img.png 

をしかし、私は、端末java -jar seo.jarから実行するとき、私はエラーを取得する:

Error: Could not find or load main class src.main.MainClass What am I doing wrong? Should I change something in my project structure? Is there a problem that I have other jar files inside my project? How can I create the executable jar and execute it successfully?

答えて

0

あなたの最初のアプローチは結構ですが、プロパティファイルにアクセスすることができませんファイルシステム内のファイルとして、jarファイル内に格納されます。クラスパス上のリソースとしてアクセスする必要があります。

2番目の方法は、jarファイルを誤って作成したことを示しています。これはzipファイルであり、Main-Classエントリに正確に対応するファイルを持つ必要があります。 "foo.Bar"の場合、ファイル "foo/Bar.class"がjarファイルに存在していなければなりません(メインメソッドがあります)。

(編集:「jar tvf」の出力から、ファイルを正しく作成していないことがわかります。main/MainClass.classの代わりにbin/main/MainClass.classがあります)。

+0

'クラスパス上のリソースとしてアクセスする必要があります。どうすればいいですか? 2番目のアプローチのコメントは...私の 'MainClass'は' bin/main'にありますが、このパスを使うときも同じ問題があります。 – Marievi

+0

この質問を参照してください:http://stackoverflow.com/q/12024672/53897また、私はあなたが問題を理解するようにjarファイルを読むことをお勧めします。 https://docs.oracle.com/javase/tutorial/deployment/jar/basicsindex.html –

+0

私もこれを試しましたが、入力ストリームはNULLのままです。 – Marievi

関連する問題