Ответ 1
Текущий каталог обычно не находится в пути к классам по умолчанию. Поэтому вам нужно явно указать:
$ scala -cp . HelloWorld
Я могу скомпилировать scala программы, используя scalac в терминале, но я получаю предупреждение.
Charless-Macintosh:src Charles$ scalac hello.scala
Charless-Macintosh:src Charles$ scala HelloWorld
No such file or class on classpath: HelloWorld
Это связано с .profile
на scala. Я довольно смущен, что происходит. Большое спасибо
Текущий каталог обычно не находится в пути к классам по умолчанию. Поэтому вам нужно явно указать:
$ scala -cp . HelloWorld
Проблема заключается в том, что вы установили переменную среды CLASSPATH
.
От > man scalac
:
Путь по умолчанию - это текущий каталог. Установка переменной CLASSPATH или с помощью параметра командной строки -classpath переопределяет это значение по умолчанию, поэтому, если вы хотите включить текущий каталог в путь поиска, вы должны включить ".". в новых настройках.
Когда у вас установлен набор переменных CLASSPATH
, scala не будет включать текущий каталог в свой поиск, вы должны явно добавить его. Вот почему работает scala -cp . HelloWorld
.
Чтобы проверить, выполните echo CLASSPATH
и он должен указать некоторую непустую строку. Проверьте файлы .bashrc/.zshrc для любого export CLASSPATH=...
и удалите эти строки.
Это также происходило со мной, но я думаю, что лучшим решением является изменение переменной CLASSPATH
для включения текущего каталога в дополнение к тому, что у вас уже было. например.
export CLASSPATH=.:$CLASSPATH
Теперь вы можете просто использовать scala HelloWorld
без этого дополнительного аргумента.