2009-12-22 163 views
6

我想使「雙擊」cli應用程序,但仍然沒有得到如何。 我知道我應該以某種方式編輯清單,但僅此而已。我搜索了一下。但沒有成功。 感謝您的任何提示。 下面是構建輸出,運行和清單:如何使用netbeans創建可執行文件.jar文件

compile: 
Created dir: /home/nick/NetBeansProjects/SemestralWork/dist 
Building jar: /home/nick/NetBeansProjects/SemestralWork/dist/SemestralWork.jar 
Not copying the libraries. 
To run this application from the command line without Ant, try: 
java -jar "/home/nick/NetBeansProjects/SemestralWork/dist/SemestralWork.jar" 
jar: 
BUILD SUCCESSFUL (total time: 1 second) 


java -jar /home/nick/NetBeansProjects/SemestralWork/dist/SemestralWork.jar 

Exception in thread "main" java.lang.NoClassDefFoundError: semestralwork/Main 
Caused by: java.lang.ClassNotFoundException: semestralwork.Main 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:319) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:264) 
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:332) 
Could not find the main class: semestralwork.Main. Program will exit. 

MY MANIFEST created with build: 

Manifest-Version: 1.0 

Ant-Version: Apache Ant 1.7.1 

Created-By: 14.0-b08 (Sun Microsystems Inc.) 

Main-Class: semestralwork.Main 

Class-Path: 

X-COMMENT: Main-Class will be added automatically by build 

回答

0

默認一流的搜索路徑可能是問題。您應該嘗試將目錄更改爲jar所在的位置,然後使用java -jar Semestral.jar啓動。你也可能錯誤地將主要類別命名。還請包括你的包裝結構。

0

使用ZIP工具打開JAR文件(或者如果您使用的是Linux或jar tvf ...,請嘗試less ...)。確保在那裏有一個目錄semestralwork,其中包含一個文件Main.class

+0

只有一種叫做「encryption.class」的方法,我從主要方法 – landscape 2009-12-22 14:09:08

+0

調用那麼這就是你的問題。該類缺少JAR,這是Java無法找到它的原因。 – 2009-12-22 16:18:30

1

從.jar 不帶 netbeans製作.exe更容易。 這裏是我的建議: 1.使用這種特殊的應用程序(例如:JSmooth,JEXECreator等) 2. C++程序啓動一個JVM(見本tutorial

6

這兩行告訴你所有你需要知道:

Exception in thread "main" java.lang.NoClassDefFoundError: semestralwork/Main 
Caused by: java.lang.ClassNotFoundException: semestralwork.Main 

和另外的線索是由清單輸出下降:

Main-Class: semestralwork.Main 

這意味着該JAR文件正在尋找一個名爲包裏面有一個名爲Main的類。它在這一點上失敗了,因爲它找不到semestralwork包或Main類。

正如您在您的問題中指出的那樣,問題確實存在於清單文件中。你可以,如果你想在你的JAR文件中直接編輯這一點,但一個更好的想法是從NetBeans中做到這一點:

  • 點擊'文件 - >項目屬性(semestralwork)」
  • 在對話框打開,在左側目錄樹中選擇Run
  • 然後在右邊,標記Main class:場下,進入完全限定類名要執行的命令行運行時類的

在你的情況,我從@阿龍的回答您的評論看,如果你的主類是在一個名爲encryption.java文件,它是在默認包(不包),只需輸入encryption

完成此操作後,請執行清理並構建,然後再次嘗試從命令行運行它。

HTH

4

自從我遇到同樣的問題,我可以明確的解決方案一點點。

您必須創建主Java類方法的外部(例如,default_package文件夾),然後調用你的方法(文件夾),e.g import your_folder.connected_class;在主類。

希望我可以幫助有同樣問題的人。

0

很簡單。下載netbeans的副本。在netbeans中創建一個新項目。轉到Projects Explorer中的主類。這應該是文件夾「YourProject」作爲YOURPROJECT.JAVA類。這是你想要開始的yourproject.java文件。只需將你的代碼寫入public static void main區域即可。您可以使用頂部工具欄中的綠色播放按鈕運行該程序。

相關問題