Самый простой способ, который я всегда использую, состоит в том, чтобы определить объект (как вы это сделали), но не соответствующий «сопутствующий» класс. В этом случае компилятор Scala создаст пару классов, тот, чье имя точно совпадает с именем объекта, будет содержать статические методы пересылки, которые для целей точек запуска средства запуска - именно то, что вам нужно. Другой класс имеет имя вашего объекта с добавленным $, и именно там находится код. Javap раскроет эти вещи, если вам интересно узнать подробности.
Таким образом, ваш HelloWorld
пример будет работать так, как вы хотите, что позволяет:
% scala pkg.package.more.HelloWorld args that you will ignore
Рэндалл Шульц