如何在我的Mac上编译和运行Java程序?

113

我该如何在我的 Mac 上编译和运行 Java 程序?

我是新手。

此外,我下载了一个被推荐给我的叫做 TextWrangler 的程序,不知道是否会对这种情况有影响。

5个回答

208

在Mac OSX或其他主要操作系统上编译和运行Java应用程序非常简单。苹果公司将一个完整的Java运行时和开发环境与OSX一起提供,因此您只需编写Java程序并使用内置工具来编译和运行它。

编写您的第一个程序

第一步是编写一个简单的Java程序。打开文本编辑器(内置的TextEdit应用程序可以胜任),输入以下代码,并将文件保存为“HelloWorld.java”在您的主目录中。

public class HelloWorld {
    public static void main(String args[]) {
        System.out.println("Hello World!");
    }
}
例如,如果您的用户名是David,请将其保存为“/Users/David/HelloWorld.java”。这个简单的程序声明了一个名为HelloWorld的类,其中包含一个名为main的方法。在Java中,main方法是特殊的,因为当您告诉它执行您的程序时,Java运行时将尝试调用它。可以将其视为程序的起点。System.out.println()方法将在屏幕上打印一行文本,在这个示例中是“Hello World!”。

使用编译器

现在您已经编写了一个简单的Java程序,需要对其进行编译。运行Terminal应用程序,该应用程序位于“Applications/Utilities/Terminal.app”。在终端中输入以下命令:
cd ~
javac HelloWorld.java

你刚刚在OSX系统上编译了你的第一个Java应用程序,虽然它很简单。编译过程将生成一个名为"HelloWorld.class"的单个文件,其中包含Java字节码,这些字节码是Java虚拟机可以理解的指令。

运行程序

要运行程序,请在终端中输入以下命令。

java HelloWorld

这个命令会启动一个Java虚拟机,并尝试加载名为HelloWorld的类。一旦它加载了这个类,就会执行我之前提到的main方法。你应该在终端窗口中看到“Hello World!”的输出。就是这样。

顺便说一下,TextWrangler只是用于OSX的文本编辑器,与此情况无关。你可以在这个示例中使用它作为你的文本编辑器,但它并不是必需的。


发生了以下情况: 上次登录时间:星期一3月1日23:41:53,终端编号ttys000 david-allenders-macbook-pro:~ davidallender$cd〜 david-allenders-macbook-pro:~ davidallender$javac Helloworld.java 错误:无法读取:Helloworld.java 1个错误 david-allenders-macbook-pro:~ davidallender$ 我做错了什么? - David
1
看起来你要么把文件保存到了错误的目录,要么使用了不正确的文件名进行保存。请在Finder中仔细检查你的主目录,查找名为“HelloWorld.java”的文件。这里大小写也很重要,请确保它被称为“HelloWorld.java”,而不是“Helloworld.java”。 - William Brendel
好的,我按照您的指示做得更好了,一切都正常了。谢谢您的帮助,我非常感激。 - David
所有的Java程序都是.class文件吗?我从未在OSX或PC上看到过这种情况。是否有其他编译程序的方法,以便大多数人都可以使用它? - Steve Chamaillard
1
我遇到了一个问题,即TextEdit自动将文件保存为.rtf(富文本格式),不允许使用.java。解决方法是在TextEdit中执行格式>制作纯文本。 - Lewis Black
@SteveChamaillard 使用 https://github.com/oracle/graal/tree/master/substratevm 编译成普通可执行文件。 - airsquared

11

我将为您提供编写和编译代码的步骤。 请使用以下示例:

 public class Paycheck {
    public static void main(String args[]) {
        double amountInAccount;
        amountInAccount = 128.57;
        System.out.print("You earned $");
        System.out.print(amountInAccount);
        System.out.println(" at work today.");
    }
}
  1. 将代码保存为Paycheck.java
  2. 打开终端并输入cd Desktop
  3. 输入javac Paycheck.java
  4. 输入java Paycheck
  5. 享受你的程序吧!

2
如果您在文件顶部有一个包名称(并且您正在运行单个Java文件),则会看到“错误:找不到或加载主类<package name>”。在这种情况下,只需通过在开头放置两个斜杠来注释掉该包。 - kurdtpage

3

下载并安装Eclipse,你就可以开始使用了。
http://www.eclipse.org/downloads/

苹果提供了自己的Java版本,请确保它是最新的。
http://developer.apple.com/java/download/


Eclipse是一个集成开发环境。它有许多功能,但在这个阶段对你有用的是:

  • 源代码编辑器
    • 带有语法高亮、颜色和其他视觉提示
    • 易于交叉参考文档以促进学习
  • 编译器
    • 一键运行代码
    • 在进行时得到错误/错误的通知

随着您获得更多经验,您将开始欣赏其丰富的其他功能。


7
根据词典的定义,“eclipse” 是指天体在观察者和它本身或其光源之间被另一个天体遮挡而产生的遮蔽现象,例如太阳的日食。但在这种情况下,它是指一款优秀的JAVA开发集成环境(IDE)。 - rptwsthi
1
你也可以使用NetBeans作为替代方案。 - kurdtpage

1

您需要确保计算机上存在与 Mac 兼容的 Java 版本。请在终端中运行 java -version 命令进行检查。如果没有,请从 Apple 网站下载 Apple JDK。(据我所知,Sun 并没有为 Apple 制作 Java 版本。)

然后,按照编译程序的相同命令行指示,在任何其他平台上使用的 Java 上使用。


1
@rob,我觉得你低估了我对这一切的新鲜程度。你能否更简单地解释一下? - David

0

其他解决方案已经足够回答您的问题。但是,如果您只是想要一个命令来为您完成这个操作 -

在存放Java文件的目录中创建一个名为“run”的文件。并将以下内容保存在您的文件中 -

javac "$1.java"
if [ $? -eq 0 ]; then
  echo "--------Run output-------"
  java "$1"
fi

通过运行以下命令,给该文件赋予可运行权限 -

chmod 777 

现在你可以通过简单地运行 - 来运行任何文件

./run <yourfilename> (don't add .java in filename)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接