在终端 Java 中内联执行 Java 代码<此处为 Java 代码>

  • 本文关键字:Java 代码 终端 执行 java
  • 更新时间 :
  • 英文 :


我希望能够像在python和php中一样执行java一行程序。

类似于:

java "System.out.println("hello world");"

从linux中的终端或windows 中的cmd

编辑:Java是一种编译过的语言。明白了。我可以即时编译和执行吗?对临时文件说,然后执行它?不使用jshell

从Java11开始,您也可以直接使用源文件运行java,例如java MyClass.java

所以,理论上,你可以做这样的事情(在bash中(:

echo 'public class TmpClass{ public static void main(String[] args){System.out.println("Hello World");}}' > /tmp/TmpClass.java && java /tmp/TmpClass.java

在任何方面都不优雅,可能也没有多大用处,但我想这是可以做到的。

为了使它在命令行上不那么冗长,您可以创建一个简单的bash脚本runjava.sh并将其调用为

$ runjava.sh 'System.out.println("Hello World");'
Hello World

runjava.sh:

#!/bin/bash
# inject given line inside the main method of a temp class
read -d '' tmpclass <<EOF
public class TmpClass{
public static void main(String[] args) throws Exception {
$@
}
}
EOF
tmpfile=/tmp/TmpClass.java
# write generated source code to a temporary file
echo $tmpclass > $tmpfile
# execute the source file directly (requires Java11+)
java $tmpfile
# delete the temporary file
rm $tmpfile

jshell可能更适合,但由于您特别要求非jshell解决方案。。

最新更新