java 板


LINE

之前都用 IDE 解決,現在突然需要用 jdk 編譯 我有三個目錄: lib (放其他需要引用的 jar), 目前有 json-20180130.jar rank (我的程式 package) class (之後放產生的 class) main function 在 MainRun.java 需要引用其他 jar 的程式引用: import org.json.*; 我編寫的 MANIFEST.MF (放在相同目錄) 和執行 script 有錯誤而執行失敗 這是 MANIFEST.MF 的內容: Manifest-Version: 1.0 Class-Path: . lib/json-20180130.jar Main-Class: MainRun 這是 script 的內容: javac -d class -cp ".:./lib/json-20180130.jar" rank/*.java jar -cvfm rank.jar MANIFEST.MF class/* java -jar rank.jar 請各位大大幫忙看一下哪邊寫錯 ? -- 肝不好 肝若好 人生是黑白的 考卷是空白的 、 ﹐ ● ●b ▎ ●> ● ▌ ﹍﹍ 囧> 幹... ▲ ■┘ ▎ ■ ▋ ︶■ 〈﹀ ∥ ▁▁∥ ▎ ﹀〉▊ 〈\ ψcockroach727 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 47.149.227.123
※ 文章網址: https://webptt.com/m.aspx?n=bbs/java/M.1521353594.A.483.html
1F:→ Killercat: 這種情況多半還是用mvn或者gradle build簡單點吧.... 03/18 16:46
2F:→ AI3767: 執行script的錯誤訊息是? 03/19 01:13
added manifest adding: class/rank/(in = 0) (out= 0)(stored 0%) adding: class/rank/MainRun.class(in = 5683) (out= 3133)(deflated 44%) ... Error: Could not find or load main class MainRun ※ 編輯: obelisk0114 (47.149.227.123), 03/19/2018 06:23:41
3F:→ ssccg: manifest中的class name要寫rank.MainRun 03/19 09:10
4F:→ ssccg: 基本上java所有說到class name的都是指完整名稱 03/19 09:10
還是有同樣錯誤 目前結構: class (預定放產生的 class) rank (我的程式, main function 在 MainRun, 全部都有加 package rank;) lib (外部 jar, 目前是 json-20180130.jar) script MANIFEST.MF 修改內容: MANIFEST.MF Class-Path: lib/json-20180130.jar Main-Class: class.rank.MainRun script javac -d class -cp lib/json-20180130.jar rank/*.java jar -cvfm rank.jar MANIFEST.MF class/* lib/* ※ 編輯: obelisk0114 (47.149.227.123), 03/19/2018 09:30:10
5F:→ ssccg: 是rank.MainRun,沒有class. 03/19 09:38
Error: Could not find or load main class rank.MainRun ※ 編輯: obelisk0114 (47.149.227.123), 03/19/2018 09:46:22
6F:→ ssccg: jar -cvfm rank.jar MANIFEST.MF -C class . 03/19 11:05
7F:→ ssccg: jar檔中的相對路徑要跟package一致,要把class重新對應到 03/19 11:06
8F:→ ssccg: jar檔中的根目錄,你可以解開jar檔確認一下 03/19 11:07
改用大大的指令 jar -cvfm rank.jar MANIFEST.MF -C class . 可以執行成功,但好像不會把 lib 裡面的 jar 包進去 將打包好的 jar 放到別的目錄就無法執行 Exception in thread "main" java.lang.NoClassDefFoundError: org/json/JSONArray at rank.MainRun.main ... Caused by: java.lang.ClassNotFoundException: org.json.JSONArray ... ※ 編輯: obelisk0114 (47.149.227.123), 03/19/2018 13:22:12
9F:→ ssccg: jar -cvfm rank.jar MANIFEST.MF -C class . lib/* 03/19 13:41
10F:→ ssccg: 我只是把你原本的 class/*換成-C class . (把class目錄下全 03/19 13:42
11F:→ ssccg: 包進去且置換成根目錄),其他你原本有的還是要有啊. 03/19 13:42
放到其他目錄還是有相同錯誤, 不過已經有把那個 jar 包進去了 ※ 編輯: obelisk0114 (47.149.227.123), 03/19/2018 14:27:39
12F:→ ssccg: 看來單純把jar包進去是不行的,有些執行環境可以是因為用了 03/19 14:39
13F:→ ssccg: 特殊的classloader,你必須把lib jar內容解開一起包到你的 03/19 14:40
14F:→ ssccg: jar裡面,或是就一樣把lib jar也複製到你要執行的目錄 03/19 14:41







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP