I am not sure if my question is more related about Ubuntu or Java, so pardon me!
I am trying to compile a java program but I get the following error:
package javax.comm does not exist
I have downloaded the required package comm.jar
but I do not know how/where should I install/copy this file.
I read somewhere that this should be in CLASSPATH
folder but I dont have this folder.
This is what I get for java -version
I guess this means I have already installed Java in my system:
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)
I also have these folders in /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
The environment variable CLASSPATH contains a colon-separated list of locations Java should search for classes. Try
export CLASSPATH=$CLASSPATH:/path/to/comm.jar
Typically you specify the classpath when you start your java program with the switch
java -cp your.jar xxxx.java
But you can also permanently add it to your java installation by copying the jar to the default-java/jre/lib/ext folder.
Finally take a look at this question: Setting multiple jars in java classpath
If you want to compile a class named foo.bar.Baz
, you must put the Baz.java
file in a directory foo/bar
and launch javac
from foo
's parent directory, ie if you list the content of the current directory you can see foo
listed. Alternatively, there's the -sourcepath
command line switch:
javac -sourcepath .:/home/asdf/qwerty foo.bar.Baz.java
Assuming your class is declared as follows
import foo.bar.*;
public class Baz {}
you must put this code in a /home/raf/foo/bar/Baz.java
file, and changing to the directory /home/raf
before invoking the compiler.
javac will output the "package foo.bar doesn't exist" error if it cannot find a foo/bar
directory tree in its sourcepath. So you either change to the right directory, or use the -sourcepath
switch to point to the root of the project, ie the directory containing javax/comm
. Put your sources in a directory like this:
+ /home/raf/project/src
|
+-/javax
|
+-/comm
and invoke javac from the src
directory
cd /home/raf/project/src
javac $filenames
or with the aforementioned switch
javac -sourcepath /home/raf/project/src $filenames
You need to adjust your CLASSPATH
to let javac compile against existing archives.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With