无法在bash脚本中运行java

时间:2013-01-28 22:10:18

标签: java bash terminal

我正在尝试编写一个简单编译java文件然后运行它的bash脚本

#!/bin/bash
read name
javac $name
$name | sed -r "s/.java//" | java

但它不是运行java文件,而是打开java。

Usage: java [-options] class [args...]
           (to execute a class)
   or  java [-options] -jar jarfile [args...]
           (to execute a jar file)

       blah blah blah

3 个答案:

答案 0 :(得分:1)

你想用Bash做一个简单的替换吗?只需使用内置替换工具。

java ${name/.java/}

无需sed

答案 1 :(得分:1)

尝试代替:

#!/bin/bash
read name
javac $name
name=$(echo $name|sed -r "s/.java//")
java $name 

或者,甚至更好:只需输入没有“.java”的主类:

#!/bin/bash
read name
javac $name.java
java $name 

关键是,您需要将参数传递给“java”命令。你不能只使用stdout中的管道。

答案 2 :(得分:1)

试试这个:

#!/bin/bash
read name
javac $name
class=`echo $name | sed -r "s/.java//"`
`java $class`