2012-09-27 14 views
8

No estoy seguro de si mi pregunta está más relacionada con Ubuntu o Java, así que discúlpeme!Agregar una biblioteca a Java CLASSPATH en Ubuntu

Estoy tratando de compilar un programa Java, pero me sale el siguiente error:

package javax.comm does not exist 

He descargado el paquete necesario comm.jar pero no sé cómo/dónde debo instalar/copiar este archivo.

He leído en algún lado que esto debería estar en la carpeta CLASSPATH pero no tengo esta carpeta.

Esto es lo que me pasa por java -version Supongo que esto significa que ya he instalado Java en mi sistema:

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) 

También tengo estas carpetas en /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 

Respuesta

12

Normalmente se especifica la ruta de clase cuando se inicia el programa Java con el interruptor java -cp your.jar xxxx.java

Pero también se puede añadir de forma permanente a la instalación de Java mediante la copia del frasco para el valor por defecto -java/jre/lib/carpeta ext.

Finalmente echar un vistazo a esta pregunta: Setting multiple jars in java classpath

+0

no funciona para mí .... – LoveToCode

1

se puede tratar de hacerlo de la siguiente manera:

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

La variable de entorno CLASSPATH contiene una lista separada por comas de los lugares de Java debe buscar clases. Trate

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

Si desea compilar una clase llamada foo.bar.Baz, debe poner el archivo Baz.java en un directorio foo/bar y lanzar javac del directorio padre foo 's, es decir, si anota el contenido del directorio actual, puede ver foo en la lista. Por otra parte, existe la opción de línea de -sourcepath comando:

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

Asumiendo que su clase se declara como sigue

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

debe poner este código en un archivo /home/raf/foo/bar/Baz.java, y cambiar al directorio /home/raf antes de invocar el compilador .

salida javac voluntad del "foo.bar paquete no existe" error si no puede encontrar un árbol de directorios en su foo/bar SourcePath. Por lo tanto, cambie al directorio correcto o use el interruptor -sourcepath para señalar la raíz del proyecto, es decir, el directorio que contiene javax/comm.Ponga sus fuentes en un directorio de la siguiente manera:

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

e invocar javac del directorio src

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

o con el interruptor antes mencionado

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

necesita ajustar su CLASSPATH para dejar javac compila contra archivos existentes.

Cuestiones relacionadas