创建一个 bash 别名来编译当前目录中的任何 .java 程序

Create a bash alias to compile any .java program in the current directory

我正在尝试创建一个 bash 别名来编译所有具有 .java 扩展名的文件,然后 运行s 所有具有 .class 扩展名的文件当前工作目录。

我目前有别名

alias jcompile="cd $pwd; javac *.java; java *.class"

我希望它能找到任何 java 程序并编译它们,然后 运行 它们,但它会抛出这个错误。

error: file not found: *.java
Usage: javac <options> <source files>
use --help for a list of possible options
Error: Could not find or load main class *.class
Caused by: java.lang.ClassNotFoundException: *.class

除非您专门定义 $pwd,否则它没有任何意义。 pwd 是一个会告诉你当前路径的命令,$PWD 是一个保存你当前路径的变量。如果您正在定义一个变量 pwd,您可能希望将其更改为更具特色的内容。

如果您希望您的函数 运行 位于不是您当前目录的位置,您可以将其作为参数传递:

jcompile() {
  cd ""
  javac *.java
  java *.class
}

和运行它通过

jcompile /my/path/to/directory