我不确定我的问题是否与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
答案 0 :(得分:13)
通常,在使用开关启动java程序时指定类路径
java -cp your.jar xxxx.java
但是你也可以通过将jar复制到default-java / jre / lib / ext文件夹来永久地将它添加到你的java安装中。
答案 1 :(得分:7)
环境变量CLASSPATH包含Java应搜索类的以冒号分隔的位置列表。尝试
export CLASSPATH=$CLASSPATH:/path/to/comm.jar
答案 2 :(得分:1)
您可以尝试按以下方式执行此操作:
javac -cp comm.jar XXXXX.java
或export CLASSPATH=comm.jar:$CLASSPATH
答案 3 :(得分:1)
如果要编译名为foo.bar.Baz
的类,则必须将Baz.java
文件放在foo/bar
目录中,然后从javac
启动foo
父目录,即如果列出当前目录的内容,则可以看到列出的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在其源路径中找不到foo/bar
目录树,则会输出“包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针对现有档案进行编译。