0235デフォルトの名無しさん
2018/06/08(金) 23:48:44.16ID:Ayrw+LdJ原因きりわけのために使ってるjarと同じ階層構造の
以下のような最小セット構成でコンパイルしてるんですがjarにすると動きません
a/A.class (packege a)
b/B.class (パッケージなし) ソースをみると import a.* を使ってる
Main.java 今回つくったプログラムでパッケージ宣言なし B を使用
> javac -cp .;b Main.java でコンパイルは通る
> java -cp .;b Main → 動く
---MANIFEST.MF---
Manifest-Version: 1.0
Class-Path: . b
Created-By: 1.8.0 (Oracle Corporation)
Main-Class: Main
> jar cvmf META-INF/MANIFEST.MF main.jar *.class a b でjarを作成
> java -jar main.jar でも > java -cp .;b -jar main.jar でも
Exception in thread "main" java.lang.NoClassDefFoundError: B
というエラーが出ます
クラスファイルの状態だと動くのにjarにすると動かない原因がどうしても分かりません
MANIFESTをかくのがはじめてなので根本的に何か間違ってる気もするんですが
Class-Path の書き方は何度もぐぐってスペースあけて並べるとあったんですがためしに .;b にしてもダメでした
解凍する前にb.jarをクラスパスで指定してたときは同じフォルダ内であれば動いたことがあったのですが
今は同じフォルダ内でも動きません
http://fast-uploader.com/file/7084024397219/
最小セットにしたファイル一式です