Как можно защитить проект на Java от простого копирования?
Вопрос обычно в юридической плоскости, не думаю, что кто-то в здравом уме будет выдавать чужой продукт за собственный и продавать его. Ведь всегда есть лицензия или договор на продажу, или что-то типа этого... 
В технической : обфусцировать код и добавить ключ активации.
Сильно защищать смысла нет.
Ибо, всегда можно показать в споре исходники. Всегда нужна поддержка, а без разработчика её очень трудно сделать.
Всем спасибо большое за ценные советы и рекомендации! 
С юридическими моментами пока не готов сталкиваться, потому буду пытаться реализовать технически.
Увлекшись мыслями о том как защитить, даже и не подумал что в принципе то украсть это одно дело, но без технической поддержки может быть довольно неудобно далее пользоваться этим всем если что-то вдруг пойдет не так.
Решил более пристально посмотреть в сторону привязки к ID машины (либо интерфейса) в комбинации с периодическим шифрованным обменом с сервером верификации. 
Также натолкнули на мысль что можно делать уникальные сборки под каждого потребителя с уникальными идентификаторами-подписями.