これを行う一般的な方法は、小さな変更が加えられた場合でも、更新のたびに JAR を再パッケージ化し、その JAR をユーザーに提供することです。ユーザーは既存の JAR を置き換えます。JAR をどのように作成するかは、あなた次第です。多くの IDE でサポートされています。シェル スクリプトを記述したり、ant や maven などの既存のビルド システムを使用したり、make を使用したりできます。(以下の編集を参照)
JAR が非常に大きく、展開が面倒な場合は、プロジェクトを小さなサブコンポーネントに分割し、それぞれが独自の JAR を持ち、変更を含むサブコンポーネントのみを再配布できる場合があります。それはあなたにとって大きなリファクタリングになるかもしれませんし、そうでないかもしれませんし、適切ではないかもしれません。ほとんどの小規模または平均的なサイズのプロジェクトでは、これは通常不要です。
展開に関しては、ユーザーにとって簡単にするための無数の方法もあります。JAR ファイルを渡すだけで済みます。たとえば、install4j を使用できます。Java Web Start を使用することもできます (ただし、扱いにくいですが)。他にもあります。
install4j と JWS はどちらも、更新の自動チェックをサポートしています。その機能をサポートすることを選択した場合、配布サイトを更新するだけで、ユーザーは自動的に更新を受け取ります。それもあなた次第です。
しかし、あなたの質問に対する簡単な答えは次のとおりです。すべてのクラスが JAR にパッケージ化されている場合、変更されたクラスの数に関係なく、更新された JAR 全体をユーザーに提供する必要があります。このコストに対抗する利点は、JAR がアプリケーション/ライブラリのソースの圧縮された自己完結型の優れたコレクションであるため、管理と展開が非常に便利になることです。
編集: Eclipse を使用していることを指定した編集に応答して、Josh M は、回答に対するコメントで指示を出します。彼のコメントに追加するには、Runnable Jar をエクスポートするには、実行構成をセットアップする必要があります。Eclipse でアプリケーションを既に実行している場合は、おそらく既に持っているでしょう。そうでない場合は、[実行] メニューで作成できます。
編集 2:いくつかの優れた JWS のヒントについては、 Thorbjørn Ravn Andersen の回答も参照してください。