自分の Java プロジェクト用の exe ファイルを作成したいのですが、問題は、だれでも自分のアプリケーション コードを exe から取得できることです。誰もexeファイルからアプリケーションのソースコードを取得できないようにする方法はありますか?
2 に答える
Excelsior Jetなどのアプリケーションを使用して exe を作成することができます(私が過去に持っていたように) または別のフリーウェア (またはそれに投資したい場合は有料のソフトウェア) をインターネットから入手できます。エクセルシオール ジェットの問題点は、無料で使用したい場合、試用期間が 90 日間しかなく、試用期間が終了すると、作成されたすべての exe が機能しなくなることです。エグゼはクラックプルーフではありませんが、ソースコードを取得するのが少し難しくなります. exe を作成することのもう 1 つの利点は、最終ユーザーが自分のコンピューターにインストールされる Java にあまり依存しないことです。
誰もexeファイルからアプリケーションのソースコードを取得できないようにする方法はありますか?
いいえ。
そして、短い詳細 (著者が尋ねたことを期待しています): Java クラスは、JVM によって実行されるバイトコードにコンパイルされます。JVM は主にソフトウェアによって実装されるように設計されているため、JVM 命令セットには、オブジェクト作成、メソッド呼び出しなど、ソース コード内の高レベル操作への 1:1 マッピングを可能にする特定の高レベル操作が含まれています。これは、JVM 命令セットが十分に文書化されているという事実と相まって、Java ソース コードを簡単に再構築できる主な理由の 1 つです。
そして、(尋ねられたことに対する) 簡単な説明: Java クラスからプラットフォームをターゲットとする実行可能ファイルを作成することは、簡単な作業ではありません。その理由の 1 つは、Java 標準ライブラリ全体 (必須java.lang
クラスを含む) が Java で実装されていることです。おそらくネイティブに実装された標準ライブラリ クラスのサブセットを提供することによって、その問題を解決したと仮定すると、結果のアセンブラ コードをリバース エンジニアリングしてソース コードに戻すことができます。クラス/オブジェクト/メソッドの境界を追跡し、そこから上に進むことができます。もちろん、結果として得られるソースは、読みやすく、理解しやすいものではないかもしれません。