簡體   English   中英

在Ubuntu中將庫添加到Java CLASSPATH

[英]Adding a library to Java CLASSPATH in Ubuntu

我不確定我的問題是否與Ubuntu或Java有關,所以請原諒我!

我正在嘗試編譯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

通常,在使用switch java -cp your.jar xxxx.java啟動java程序時,請指定類路徑

但您也可以通過將jar復制到default-java / jre / lib / ext文件夾將其永久添加到Java安裝中。

最后看一下這個問題: 在java classpath中設置多個jar

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

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

您可以嘗試按以下方式執行此操作:

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

如果要編譯名為foo.bar.Baz的類,則必須將Baz.java文件放在foo/bar目錄中,並從foo的父目錄啟動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

如果javac在其sourcepath中找不到foo/bar目錄樹,則會輸出“package foo.bar not exists”錯誤。 因此,您要么更改到正確的目錄,要么使用-sourcepath開關指向項目的根目錄,即包含javax/comm的目錄。 將您的源代碼放在如下目錄中:

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

並從src目錄調用javac

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

或者使用上述開關

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

您需要調整CLASSPATH以讓javac針對現有歸檔進行編譯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM