2011-04-04 61 views
2

我用javamysql寫了一個程序,現在我想要一個jar文件,當我點擊它時程序工作(without that mysql install on my system)。如何從我的項目建立jar文件?

我右鍵點擊我的項目的擠壓乾淨,並建立,但它沒有建立jar文件,下面

輸出寫道。

Updating property file: C:\Users\mehdi\Documents\NetBeansProjects\project1\build\built-clean.properties 
Deleting directory C:\Users\mehdi\Documents\NetBeansProjects\project1\build 
clean: 
init: 
deps-jar: 
Created dir: C:\Users\mehdi\Documents\NetBeansProjects\project1\build 
Updating property file: C:\Users\mehdi\Documents\NetBeansProjects\project1\build\built-jar.properties 
Created dir: C:\Users\mehdi\Documents\NetBeansProjects\project1\build\classes 
Created dir: C:\Users\mehdi\Documents\NetBeansProjects\project1\build\empty 
Compiling 8 source files to C:\Users\mehdi\Documents\NetBeansProjects\project1\build\classes 
C:\Users\mehdi\Documents\NetBeansProjects\project1\src\project1\NewUser.java:24: package sun.swing.table does not exist 
import sun.swing.table.DefaultTableCellHeaderRenderer; 

Note: Some input files use or override a deprecated API. 
Note: Recompile with -Xlint:deprecation for details. 
1 error 
C:\Users\mehdi\Documents\NetBeansProjects\project1\nbproject\build-impl.xml:595: The following error occurred while executing this line: 
C:\Users\mehdi\Documents\NetBeansProjects\project1\nbproject\build-impl.xml:276: Compile failed; see the compiler error output for details. 
BUILD FAILED (total time: 0 seconds) 

現在我想知道如何從我的程序中建立一個jar文件,在沒有安裝mysql的情況下工作正確。

I use net beans 6.9.1 

and jdk-6u23-windows-i586 

回答

0

這與mysql根本沒有任何關係。編譯錯誤很明顯:

C:\Users\mehdi\Documents\NetBeansProjects\project1\src\project1\NewUser.java:24: package sun.swing.table does not exist 
import sun.swing.table.DefaultTableCellHeaderRenderer; 

您的編譯失敗,因爲它無法找到任何地方的導入。修復您的導入並重新編譯。

+1

我的程序與netbeans正常運行。 – 2011-04-04 16:47:01

+0

@mehdi,那個錯誤日誌不說謊。它可能與NetBeans一起運行,儘可能公平,試着弄清楚爲什麼在編譯期間它失敗了。 – 2011-04-04 16:50:45

+1

@mehdi,導入來自sun。*包,通常您不應該在代碼中使用它。您是否安裝了多個JDK?也許它使用Netbeans正確運行,因爲它使用的是Sun JDK,但是當您使用其他方法運行它時,您使用的是非Sun JDK,因此該類不存在。 – wolfcastle 2011-04-04 17:09:01

0

這也不會損害右鍵單擊您的項目並去屬性 - >生成 - >編譯在底部填充其他編譯器選項與「-Xlint:deprecation」。

+0

我用** - Xlint:deprecation **填充**附加編譯器選項**,但它沒有不言而喻。 – 2011-04-04 16:53:16

+0

您有這些消息:1.注意:某些輸入文件使用或覆蓋棄用的API。和2.注意:使用-Xlint:deprecation重新編譯以獲取詳細信息。編譯器選項解決了第二個問題。您必須嘗試查找棄用的API並擺脫它。一般來說,如果輸入正確,Netbeans會創建完美的運行罐。 – 2011-04-04 18:15:22

0

我打算冒險嘗試使用OpenJDK構建,而OpenJDK不包含sun。*包。由於Netbeans不斷編譯,它可能以netbeans運行。檢查您的設置以確保您使用的是太陽JDK,然後應該可以正常工作。

+0

或避免使用sun。*包裝! – 2011-04-04 17:56:04

+0

我通常會推薦它,但是這會假定他沒有任何真正的理由使用它們。有些時候可能需要使用防曬包。例如,在使用javax.sound apis時,我必須這樣做。 – 2011-04-04 18:13:26

+0

我同意,我只是想指出,如果有人使用sun。*軟件包應該非常確定他這麼做的原因,而不是偶然使用它們(因爲eclipse建議它例如!) – 2011-04-05 07:44:02

1

實際上有兩個問題我想分開: 1.如何克服編譯錯誤? 2.如何將您的項目打包到獨立的可運行jar文件中?

上面已經說過1號了。我只想添加一些一般性建議:在導出項目之前仔細檢查你的類路徑:不同IDE默認情況下可能會在類路徑中設置不同的庫,但是當您導出代碼並在其他位置從命令行運行時,先前可用的第三方不再可用。

關於第二個問題:您需要打包您在jar中使用的所有第三方。我相信應該有一定的NetBeans插件,可以幫助做it.You會發現這個鏈接有幫助:

http://dr.berkeley.edu/REM/wiki/index.php/Making_a_Java_executable_jar_in_Netbeans

祝你好運!

1

我有同樣的問題。爲了工作上的事情,我已將此添加到pom.xml文件...

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>2.3.2</version> 
    <configuration> 
     <source>1.6</source> 
     <target>1.6</target> 
     <compilerArguments> 
      <bootclasspath>${java.home}\lib\rt.jar</bootclasspath> 
     </compilerArguments> 
    </ configuration> 
</plugin> 
0

也許你需要添加的javac -XDignore.symbol.file在編譯時,看到Using internal sun classes with javac

只是爲了與Maven它會是這樣的參考這個:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>2.0.2</version> 
    <configuration> 
     <source>1.6</source> 
     <target>1.6</target> 
     <compilerArgument> 
      -XDignore.symbol.file 
     </compilerArgument> 
    </configuration> 
</plugin> 
相關問題