0

我在这里可能有多个问题,但最终我试图编译和运行一个引用 3rd 方 JAR 文件(在 Ubuntu Linux 上)的 Java 程序,所以我认为将其保留在一个问题上是合适的。

我正在尝试正确安装和配置 Java JDK 7,以便在 Ubuntu Linux 上运行一个简单的程序。我想从专家那里得到指导,至少可以帮助我从命令行运行一个简单的 Java 程序(也许是“Hello World”应用程序?)。我过去只在 Windows 上编译和运行 Java 程序,所以这对我来说是新的。昨晚,我读到你必须小心不要安装 Open JDK,而要安装 Oracle JDK。安装操作系统时,Ubuntu 11.10 似乎会为您安装 Java Open JDK。

我正在运行 32 位 Ubuntu,而不是 64 位。所以我下载了这个 Linux JDK 文件:
jdk-7u4-linux-i586.tar.gz

我将 tarball 解压到 /usr/java 中,然后删除 *.gz 文件以节省磁盘空间。有些教程说安装到 /usr/java 中,有些说安装到 /usr/lib/jvm 中,所以我只选择了一个并使用它。如果您对适当的安装目录有任何建议,请告诉我您的建议。

然后,我使用“java -version”命令检查了安装的 Java 版本(如下)。它没有找到 Oracle JDK。

(1)为什么命令没有列出我刚安装的Oracle JDK包?

mac@UBUNTU:/usr/lib$ java -version
The program 'java' can be found in the following packages:
 * gcj-4.4-jre-headless
 * gcj-4.6-jre-headless
 * openjdk-6-jre-headless
 * gcj-4.5-jre-headless
 * openjdk-7-jre-headless
Try: sudo apt-get install <selected package>
mac@UBUNTU:/usr/lib$ 

(2)你能帮我完成配置这台 Linux 机器以编译 Java 程序的必要步骤吗(完成我刚刚开始的工作)?

(3)你能帮我编译一个 *.java 文件以创建 *.class 文件的步骤吗?

(4)你能帮我运行一下我们刚刚编译的Java程序吗?

(5)假设我想在我的 Java 程序中包含多个 *.jar 文件(第 3 方程序集)。如果这些文件不在运行引用它们的 Java 程序的目录中,Java 怎么知道在 Linux 上哪里可以找到这些文件?(我只熟悉 Windows 中的 CLASSPATH)

4

1 回答 1

3
  1. Ubuntu 基于 Debian 及其 apt-get 实用程序。apt-get 将仅列出已知的软件包。您安装的只是一个位于您系统上的文件夹,而 apt-get 甚至不知道它。
  2. 它看起来java不在你的路径上。因此,要么在路径的一个文件夹中创建指向 java 二进制文件的符号链接(键入env以查看路径变量中的内容),要么将 JDK bin 目录添加到路径中(参见命令export)。作为最后的手段,您可以键入 java 二进制文件的绝对路径,但这很痛苦。
  3. 要编译,您只需使用 javac(Java 编译器)。例如javac Test.java. 确保 javac 也在您的路径上(或使用 java 编译器的绝对路径)
  4. 要运行它,请键入java -cp . Test(如果将其放在包中,请不要忘记键入类的完全限定名称,这是推荐的)
  5. When you compile or when you run, use the argument -cp followed by the list of jars you want to use (separated by a ':' on Linux and by a ';' on Windows). You may use wildcards in your classpath (like lib/*.jar) but you may also have to escape the wildcard to avoid shell expansion (like this lib/\*.jar).
于 2012-04-30T09:14:47.420 回答