不需要编译的Java
以Java版本实时编译和执行C代码。
请把这个保存为J1的名称。
#!/usr/bin/env bash
temp=$(mktemp /tmp/JXXXXXX)
class=$(basename $temp)
outdir=$(dirname $temp)
{
echo 'public class '$class'{'
echo 'public static void main(String[] args){'
echo $@
echo ';}}'
} >> $temp.java
#cat $temp.java
{
javac $temp.java
java -cp $outdir $class < /dev/stdin
}
虽然会变成这样,但并不比C更开心。
~/s/c ❯❯❯ ./j1 'System.out.println("Hello world.")'
Hello world.
对于常规用途,我建议使用Java REPL,Nashorn,JRuby,Groovy,Clojure等。