2017-08-01 11 views
-2

CS教授が私たちのJavaクラスをLinuxサーバーでコンパイルすることを主張してから、グレーディングのコードを提出します。彼は私がC言語のコースで彼を連れて行ったときにこれを行いました。なぜなら、時にはCコードがWindows上でLinux上で異なる方法でコンパイルされることがあるからです。Windows上のLinuxマシンでjavaをコンパイルする利点は何ですか?

しかし、JVMの理解は、プラットフォームに依存しないということです。これは本当ですか、私はLinuxでコンパイルするといくつかのメリットがないのですか?

+3

いいえ、利点はありません。それは役割を果たしているJVMだけです、それはPIです。 –

+0

WindowsとLinuxではデフォルトの文字セットが異なりますので、誰かが\ u000dのようなUnicodeエスケープのようなコメントとして装った悪意のあるコンテンツを挿入しようとすると、利益が得られます。おそらくそれを理解することができます。しかし、再度Unicode処理がソースコード処理の前に行われるので、どのくらいの価値が追加されているのか分かりません – TruckDriver

+0

また、一部のビルドはデフォルトの文字セットのためにプラットフォームに依存します。等 – TruckDriver

答えて

1

Javaは一度だけ実行されます。おそらくそれが作成された主な理由の1つです。 Javaはバイトコードにコンパイルされ、Java仮想マシンによって解釈されて実行されます。さらにパフォーマンス上の理由から、Just-In-Time Compilationを使用してネイティブコードに変換されます。

私が考えることができる唯一の理由は、アプリケーションにハードコードされたOS固有のものかもしれません。 "C:\ some \ folder \ lives \ here \ on \ windows"や "/ usr/local/somefile/here/i/want/to/access/on/linux"のようなものです。再びわからない。

+0

それは私が考えたものです。私は彼に尋ねなければならず、なぜ彼はそれをやりたいのかを見なければならない。 –

+1

彼があなたにOS固有のものをハードコードするならば。彼に挑戦してください!彼に教えてください。仲間の意見を聞いてください.Javaから提供された「Paths」パッケージがあり、私たちのためにこの作業を行うことができます。実際は存在しません。あなたが幸せな思考を考えたときに飛ぶことができると気づいたときに、ピーターパンで子供が持っていたのと同じ熱意を持っていることを確認してください。ただ言って... – Tr1gZer0

関連する問題