2013-07-19 15 views
5

まず第一に、私は絶対的なJavaの初心者です。Java - 実行可能なJAR?簡単な逆コンパイル?

私は最近、Javaの使用を開始し、そのような変数、論理演算子、ループやもののほかに、私はJFramesで遊んと私の心に来る質問のカップルがあります。

  1. 私はexecutable jarとして私のプログラムを保存することで プログラムは、1つのファイルのように見えることに気づきました。あなたは、彼らがすべてのこのjarファイルに保存されます多くのリソース(画像、オーディオファイル &など)を使用します何かを開発 するつもりだときには、意味ですか?

  2. 私が気付いたもう一つは、jarファイルを抽出し、.classファイルをかなり簡単に逆コンパイルできることです。それで、MySQLデータベースを使用してMySQLサーバーに接続するとしたら、私はJDBCドライバを使用しなければなりませんか?パスワードをハードコーディングしますか?

  3. は、3Dゲームに適したJavaですか?私はこれから本当に遠いですが、私に知らせてください。遅いと少し混乱し私に葉3Dゲームのそれは適していません私はjMonkeyEngineようJava 3Dゲームエンジンで書かれたゲームを見て、私は感銘を受け、私はそれJava周り(読み)の記事を赤。オプションで

+1

パスワードをハードコーディングしないでください。また、データベースを公開しないでください。 –

+1

3.ゲームの例:Minecraftのは、あなたがバンドルおよび他のトピック、単にJavaの基本を学んでいると3Dプログラミングを心配している場合は、自分で動脈瘤を与えるつもりだ – booleanCube

+7

のJavaで書かれていました。最初に基本を学ぶことに固執する。快適になったら、より高度なトピックに進んでください。 3Dゲームデザインの究極の目標で時間の投資を心配しているなら、そうしないでください。 C/C++やその他のプログラミング言語に移植できる貴重なスキルを学びます。 –

答えて

6
  1. したい場合は、それを行うことができます。 OracleのJavaチュートリアルでは、実行可能なJARファイルの作成について読むことができます:Packaging Programs in JAR Files

  2. 任意の言語で書かれたプログラムの任意の種類は、リバースエンジニアリング、そうかかわらず、それはJavaのかどうか、あなたは決してハードコードパスワードはずのことができます。 Javaバイトコードを使用すると、逆コンパイルはかなり簡単です。Javaはまだ若かったとき

  3. 10年以上前に、それは直接、CやC++などのネイティブコードにコンパイルされている言語に比べて比較的遅かったです。しかし、Java仮想マシンでは長年にわたり多くの進歩があり、Javaプログラムのパフォーマンスは多くの場合C++に匹敵します。 Javaが遅いと不平を言う人は、最新ではないか、Javaに関する多くの現在の経験がありません。 jMonkeyEngineを使ったデモからわかるように、Javaは確かに高速です。しかし、商用3Dグラフィックスゲームでは、C++は従来のデファクトプログラミング言語のように見えます。パフォーマンスの最後の部分をハードウェアから絞り出すには、そのハードウェア専用のコードを記述する必要があります。プラットフォームに依存しないように設計されているため、Javaはそのための適切なツールではありません。

+0

ありがとう!素晴らしい答え! – user2081339

2
  1. 。確かに必須ではなく、外部ファイルからもリソースをロードできます。本当だ

  2. 。このようなアプリケーションの共通アーキテクチャーは、クライアントと実際のデータベースの間にアプリケーションサーバーを置くことです。あなたが制御するアプリケーションサーバは、データベースのパスワードを知っているものです。それは、実行が許可されるはずの操作だけをクライアントに公開します。

  3. MinecraftのはQEDので、Javaで書かれています。あなたは、Javaで書かれたゲームで現代GPUのパフォーマンスの限界を押し上げる可能性は低いでしょうが、それはすべてのゲームの目標ではありません。

+1

LWJGLを利用したゲームは、GPUを制限に簡単に押し込むことができるため、JavaからOpenGLにアクセスできます。 MinecraftはLWJGL btwを使用します。 –

+0

ありがとうございます:) +1 – user2081339

2
  1. はい、あなたははい1瓶
  2. にすべてをかけるが、信頼されていないユーザーがデータベースへの生のアクセスを与えることは、とにかくめったに良いアイデアではありませんすることができます。より良い方法は、パブリックAPIを使用してサーバーアプリケーションを構築し、ユーザーを認証することです。
  3. です。 Javaよりも豊かで高品質なグラフィックエフェクトに焦点を当てた3Dアプリケーションを作成したい場合は、おそらく最良の選択ではありません。しかし、Javaの3dは簡単で高レベルなので、他の低レベルの技術に比べて開発に多くの時間を節約できます。
関連する問題