Тогда вы неправильно установили classpath.
Я думаю, что обычно более удобно, чтобы IDE создавал jar-файл со всеми включенными не jre-библиотеками и выполнял его из командной строки.
java -jar myprogram.jar
Какая польза от программы, написанной на Eclipse, если она может быть легко выполнена только внутри Eclipse?
Это действительно Хороший вопрос, и развертывание Java-приложений само по себе является искусством. И компиляция, и выполнение - если не сложно - по крайней мере громоздки, когда выполняются вручную. Но Eclipse и другие инструменты, такие как Netbeans, могут помочь вам выполнить эти задачи простым способом и даже упаковать вашу программу для вас, чтобы другие, кто не использует эти инструменты, также могли легко выполнять программы.
Независимо от того, наследуются ли сообщения от ActiveRecord или ActionMailer, вам, вероятно, понадобится модель для любых объектов, с которыми взаимодействуют ваши представления и контроллеры. В вашем случае они будут обрабатывать экземпляры класса Message - вам нужна модель для этого.
Что касается модуля отправки сообщений - извлечение в библиотеку - отличный вариант, если вы планируете повторно использовать код в другом месте, где вы можете просто включите модуль в любой класс.
Поскольку это всего лишь "небольшой" модуль отправки сообщений, вы можете начать с модели и в конечном итоге извлечь его в отдельный модуль, если он может быть полезен где-то еще или ваша модель тоже грязный.
Мне нравится теория «модели данных», и я стараюсь придерживаться ее, когда могу, но я думаю, что Бенси и Милан имеют правильную идею. Если с ним связаны представления и контроллеры, это должны быть модели. Если вы ссылаетесь только на функциональность из другого класса, поместите его в lib.
Вам, вероятно, следует подумать больше с точки зрения основного бизнеса. Модели, как следует из их названия, предназначены для представления (модели) какой-либо реальной системы или процесса. Итак, практическое правило должно быть таким: играет ли эта сущность какую-либо роль в системе, которую я пытаюсь выразить в своем приложении? Если ответ положительный, то данная организация является хорошим кандидатом на роль модели. Однако было бы вполне нормально реализовать основные функции вашего модуля обмена сообщениями в какой-то отдельной библиотеке для последующего повторного использования и просто включить ее в модель.