gpt4 book ai didi

java - 我了解 Unix 和 C++,但不懂 RPM 或 Java,如何运行 Java Hello World?

转载 作者:行者123 更新时间:2023-12-02 01:51:27 25 4
gpt4 key购买 nike

我是 Unix 和 C++ 的老手,但不是 RPM 或 Java。我必须写一个Java程序。如果我运行了一个 Hello World,我可以使用互联网来找到我的路,但是如何才能运行一个 Java Hello World?

确实拥有一台机器的root权限,但不太了解该机器的出处。使用 SuSE 11.4,如 cat /etc/*-release 所示。

最佳答案

目前看来,您需要 Java 1.8。您需要开发工具包“JDK”而不是运行环境“JRE”。

如果您有它,您将看到此处显示的 jdk1.8blahblah。您可能会认为他们会将 Java 放在包名称中,是的,他们曾经这样做过。但仅此而已,因此 grep'ing java 只会找到旧版本。

rpm -qa |grep jdk
jdk1.8-1.8.0_191-fcs.x86_64
java-1_6_0-openjdk-plugin-1.6.0.0_b20.1.9.7-1.2.1.x86_64
java-1_6_0-openjdk-1.6.0.0_b20.1.9.7-1.2.1.x86_64

如果没有,java.com 就不是答案——他们似乎只有 JRE。他们的搜索工具不会在带有“JDK”或“下载 JDK 8”的前十个结果中返回您需要的链接。但谷歌在第一次点击时就找到了它,目前:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

64 位获取 x64 版本,32 位获取 x86 版本。

Firefox 有一个内置的 RPM 安装程序。如果您安装它,您将看到一个名为“下载”的对话框(仅供引用;关闭);安装摘要(点击“完成”)。系统会提示你输入 root 密码,这让我感到不舒服。 或者,您可以将 RPM 文件保存在任何地方,然后以 root 身份运行(替换您的文件名)

rpm -ivh wherever/jre-8u191-linux-x64.rpm

当它运行时,它将输出(除其他外)包名称。对于其他 rpm 命令,您可以使用此程序包名称,而不是文件名。 (如果您尝试rpm -q filenamerpm -e filename,它会告诉您文件名未安装,如果rpm -ivh 似乎只是告诉您它已安装!)

现在它在哪里安装了您需要的工具?

> rpm -ql jdk1.8-1.8.0_191-fcs.x86_64 | grep 'bin/java$'
/usr/java/jdk1.8.0_191-amd64/bin/java
/usr/java/jdk1.8.0_191-amd64/jre/bin/java

如果您在那里看到它们,则可以删除 RPM 文件。

好的,它位于/usr/java/jdk1.8.0_191-amd64 中。将/usr/java/jdk1.8.0_191-amd64/bin 添加到 .cshrc 或您拥有的路径中,然后重新获取它的源代码。

> java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
> javac -version
javac 1.8.0_191

太棒了,我们看到了 1.8!

Java 将源代码保存在 .java 文件中,每个类一个文件。这些由编译器读取,并在 .class 文件中输出字节码。然后就可以运行它们了。

将其放入名为 HelloWorld.java 的文件中:

public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World");
}
}

在该目录中,键入以下内容。他们应该成功而无需进一步输出。

> javac HelloWorld.java
> java HelloWorld

然后您应该会看到 Hello, World 输出。

以上可能需要 -cp .-cp ./ 选项。

关于引导学习曲线:

  • 行对行语法大部分类似于 C++。
  • 不需要明确的“include”语法;你可以引用按名称在同一目录中的公共(public)类。
  • 公共(public)类必须具有其文件名,但文件可以包含其他私有(private)类。
  • 当您开始认为所有看起来像 C++ 对象(Thing thing)的东西实际上都是作为指向引用计数对象的指针来实现时,它就足够准确了。这 ”。”就像 C++ 的“->”。
  • 没有通过引用传递原子变量;始终按值(int boolean double 等)
  • 字符串是值和引用之间的中间地带
  • 对象是通过引用传递的,认为对它们的“引用”是通过值传递的。 Java 中的 Method( Thing thing ) 就像调用 C++ 中的 Method( Thing* pthing ) 一样。 Method()thing/pthing 本身的更改不会影响调用者,但 thing.field/pthing->field 更改是全局的。
  • 对于更具体的问题,Google 应该可以找到您需要的一切。

关于java - 我了解 Unix 和 C++,但不懂 RPM 或 Java,如何运行 Java Hello World?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52926141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com