Создайте псевдоним bash для компиляции любой .java-программы в текущем каталоге - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь создать псевдоним bash, который компилирует все файлы с расширением .java, а затем запускает все файлы с расширением .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

1 Ответ

3 голосов
/ 02 июля 2019

Если вы не определите $pwd конкретно, это ничего не значит.pwd - это команда, которая сообщит вам ваш текущий путь, а $PWD - это переменная, которая содержит ваш текущий путь.Если вы определяете переменную pwd, вы можете захотеть изменить ее на нечто более характерное.

Если вы хотите, чтобы ваша функция работала в месте, которое не является вашим текущим каталогом, вы можете передать его в качестве аргумента:

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

и запустить его через

jcompile /my/path/to/directory
...