java - 如何编写 Java 可执行的 scala jar 来获取机器的主机名?
问题描述
我想在 Scala 中执行此活动并使用 Java 执行它:
hostname -i
用于此的 scala 代码是:
import java.net._
object HostName {
def main(args: Array[String]){
val localhost: InetAddress = InetAddress.getLocalHost
val localIpAddress: String = localhost.getHostAddress
println(localIpAddress)
}
}
在运行上述程序的机器上,没有安装 Scala。它确实安装了Java。据我了解,Java 可以执行 Scala 代码。
在我的本地,我执行这些步骤并得到答案:
scalac HostName.scala
scala HostName
我还注意到生成了两个文件:
HostName$.class
HostName.class
我的目标是用 Java 运行一个 Scala 文件并在 shell 中得到这个代码hostname -i
的结果。像这样的东西:OUT=$(<the command to execute the script and get the result of println>)
我试过运行HostName
withjavap
但它没有给出正确的结果:
JAVA_HOME=/opt/random_mde/package/RandomJDK11/current/Contents/Home/bin/javap HostName
结果是:
ab-mbp-parvals
而不是来自 Scala 代码的 IP 地址:a.b.c.d
. 如果我跑hostname
而不跑hostname -i
,我会得到ab-mbp-parvals
。如果我hostname -i
在 linux 机器上运行,我会得到 IP。
如何执行 scala 代码来执行hostname -i
不安装hostname
在只有 Java 的机器上的工作?我很高兴jar
在安装了 Scala 的机器上编写代码。
解决方案
推荐阅读
- laravel - 多台服务器上的 Laravel 数据库作业
- c# - ILogger 通过 Azure Function 2.x 的 Http 触发函数的构造函数注入
- regex - 正则表达式在点|分号空格处拆分,但例如忽略 url
- python - 处理python字典中缺少的键
- c - 为什么可以在不检查返回值的情况下调用返回值的函数?
- tensorflow - 训练后使用 TensorFlow 模型进行目标检测
- javascript - 更改静态文件夹 - express
- go - 如何在非本地包错误中本地导入
- linux - 在 Linux 日志文件中记录最后 30 分钟的条目
- ansible - 使用 Ansible 在 fstab 中进行双重输入