Unix 和 C++ 但不知道 RPM 或 Java

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

确实在一台机器上有 root,但对机器的出处知之甚少。使用 SuSE 11.4,如 cat 所见/etc/*-release


慕婉清6462132
浏览 136回答 1
1回答

HUH函数

目前,您似乎需要 Java 1.8。您需要开发工具包“JDK”而不是运行时环境“JRE”。如果你有它,你会看到这里显示的jdk1.8blahblah。你会认为他们会把 Java 放在包名中,是的,他们曾经这样做过。但没有更多,所以grep'ing forjava只会找到旧版本。rpm -qa |grep jdkjdk1.8-1.8.0_191-fcs.x86_64java-1_6_0-openjdk-plugin-1.6.0.0_b20.1.9.7-1.2.1.x86_64java-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 filename, 或rpm -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 中的 PATH 或您有什么并重新获取它。> java -versionjava 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 -versionjavac 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++。不需要明确的“包含”语法;您可以通过名称引用同一目录中的公共类。公共类必须具有其文件的名称,但文件可能包含其他私有类。它足够准确,因为您开始认为所有看起来像 C++ 对象(事物)的东西实际上都是作为指向引用计数对象的指针实现的。这 ”。” 就像 C++“->”。没有通过引用传递原子变量;总是按值(int boolean double 等)字符串是值和引用之间的中间地带对象通过引用传递,认为对它们的“引用”是通过值传递的。 Method( Thing thing )在 Java 中就像Method( Thing* pthing )在 C++ 中调用一样。 Method()对thing/pthing本身的更改不会影响调用者,但thing.field/pthing->field更改是全局的。对于更具体的问题,谷歌应该能找到你需要的一切。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java