2012-09-27 39 views
8

我不確定我的問題是否與Ubuntu或Java更相關,請原諒我!在Ubuntu中添加庫到Java CLASSPATH

我試圖編譯Java程序,但我得到以下錯誤:

package javax.comm does not exist 

我已經下載了所需的軟件包comm.jar但我不知道如何/我應該在哪裏安裝/複製此文件。

我在某處讀到這應該在CLASSPATH文件夾但我沒有這個文件夾。

這是我得到java -version我想這意味着我在我的系統已經安裝的Java:

java version "1.6.0_24" 
OpenJDK Runtime Environment (IcedTea6 1.11.4) (6b24-1.11.4-1ubuntu0.12.04.1) 
OpenJDK Server VM (build 20.0-b12, mixed mode) 

我也有這些文件夾中/usr/lib/jvm/

default-java    java-1.7.0-openjdk-i386 java-6-openjdk-i386 
java-1.6.0-openjdk  java-6-openjdk   java-7-openjdk-common 
java-1.6.0-openjdk-i386 java-6-openjdk-common java-7-openjdk-i386 

回答

12

通常指定的類路徑,當你與交換機 java -cp your.jar xxxx.java

啓動Java程序,但你也可以永久的jar複製到默認情況下它添加到您的Java安裝-java/jre/lib/ext文件夾。

最後來看看這個問題:Setting multiple jars in java classpath

+0

不適合我.... – LoveToCode

1

你可以嘗試請按以下方式操作:

  1. javac -cp comm.jar XXXXX.java
  2. export CLASSPATH=comm.jar:$CLASSPATH
7

環境變量CLASSPATH中包含的位置的Java應搜索類的冒號分隔列表。嘗試

export CLASSPATH=$CLASSPATH:/path/to/comm.jar 
1

如果你想編譯一個類名爲foo.bar.Baz,則必須從foo的父目錄,即把Baz.java文件目錄foo/bar並啓動javac如果你列出當前目錄的內容,您可以列出了foo。另外,還有的-sourcepath命令行開關:

javac -sourcepath .:/home/asdf/qwerty foo.bar.Baz.java 

假設你的類被聲明如下

import foo.bar.*; 
public class Baz {} 

你必須把這個代碼在/home/raf/foo/bar/Baz.java文件,並調用編譯器之前切換到目錄/home/raf

如果在其源路徑中找不到foo/bar目錄樹,javac將輸出「包foo.bar不存在」錯誤。因此,您要麼切換到正確的目錄,要麼使用-sourcepath開關指向項目的根目錄,即包含javax/comm的目錄。把你的源代碼在這樣的目錄:

+ /home/raf/project/src 
| 
+-/javax 
    | 
    +-/comm 

,並從src目錄

cd /home/raf/project/src 
javac $filenames 

或與上述開關

javac -sourcepath /home/raf/project/src $filenames 

您需要調整您的CLASSPATH讓調用的javac javac根據現有的檔案進行編譯。