電子書籍の厳選無料作品が豊富!

最近J#をはじめました。

たまたま、ソースがコンソール出力のものだったか知りませんが
Javaのソースをほとんど修正なしで動作したので驚きました。

不思議に思ったのは、以下の記述部をそのままにしてもエラーにならなかった点です。

import java.io.*;
import java.net.*;

System.out.println("test");

J#は.NETなので、 import System....や Console.WriteLineと書かないといけないと思いますが、動作する理由はなぜなのでしょうか?

あと、お勧めできるJ#の解説書をご存知の方、教えてください。

JavaはEclipseという開発環境がありますが、J#では、EXEファイルにでき、実行速度の面と、他の言語 VB.NETやC++,C#など組み合わせができ、多様性があるのですが、Javaの達人に聞きたいのですが、なぜJ#を使わないのでしょうか?

A 回答 (4件)

回答とかアドバイスっていうよりかは、恐らくいろんな方々が拝見されていると思いますので。



まず始めに、Sunとの訴訟に関しては以下のサイトにて簡潔に述べられています。

Javaプログラミングを極める
第9回:Visual J# を使ってみる
http://www.utj.co.jp/xml/dev/java/dxjava_9.html

んでもって、公式サイトの最新情報はこっち。

Microsoft Java Virtual Machine (MSJVM) サポート
http://www.microsoft.com/japan/java/default.mspx

上記のサイトを見ればわかる通り、MSJVMのライフサイクルは今年の大晦日で終了です。

>なぜJ#を使わないのでしょうか?
古いから。

以下のサイトもご覧になれば分かる通り、そもそもMicrosoft VMの対応する JDK バージョンは「1.1.4」となっています。

[INFO] Microsoft VM が含まれているこれまでのリリースの一覧
http://support.microsoft.com/kb/169803/JA/

今現在、Javaプログラマー向けのSun認定資格SJC-Pとしては、310-055[5.0系に相当]と310-035[1.4系に相当]の2つ(に、それぞれのUpgrade Examを合わせて4つ)がありますが、実際には、つい最近まで以下のような1.2系に相当する資格も存在していました。

Sun Certified Programmer for the Java 2 Platform 1.2(試験番号310-025)
http://www.engineersguide.jp/Knowledge/Professio …

で、その試験範囲の中には310-035以降に削除されてしまった、以下の3項目が含まれていました。

・ネットワーク機能(→ソケットプログラミングなど)
・JavaGUI(→java.awtパッケージなど)
・イベントモデル(→イベントハンドラなど)

ここからはあくまでも私の個人的な見解ですが、本来は「なぜ、インターフェイスを使うのか?」などを深く理解するためにもSwingの勉強をすることはとても意義あることだと思います。ただ現状では、サン・エデュケーション・サービスとしても「その辺りの技術に関しては、無理して勉強しなくてもいいよ。」というスタンスなのでしょう。(何せ、認定資格の出題範囲から削除するくらいですからね。)
    • good
    • 0

http://www.microsoft.com/japan/msdn/vjsharp/
Visual Studio 2005 技術情報

>将来バージョンの Visual Studio における J# 言語および
>Java Language Conversion Assistant の提供中止

>Visual Studio 2005 で提供された Visual J# および JLCA
>のサポートを製品ライフサイクルに則り引き続き提供します。
上記の通り、Visual Studio 2005以降では提供中止される様です。
    • good
    • 0

>J#は.NETなので、 import System....や Console.WriteLineと書かないといけないと思いますが



そんなことはありません。.netフレームワークを利用して動かすこともできるのであって、Java自身が持つシステムライブラリを使っても動きますよ。別に「Java本来の機能は使えない」というわけではありません。

J#に限らずとも、例えばJscript .netでは、JavaScriptのスクリプトがほとんど修正なしに動きます。別に驚くことではなく、.net対応言語はどれも基本的にそのような形で作られているはずです。

>なぜJ#を使わないのでしょうか?

J#で作ったEXEは、.netフレームワークの適合するバージョンがインストールされているものでしか動かないからです。.netがなければ動きませんし、バージョンが違うとやっぱり動かない。MacでもLinuxでも動かない。Javaで作ったものは、JREさえあればどんなものでも動きます。

逆に、質問者さんがあげた特徴は「J#でなくてもいい」ものばかりですね。.netを使ってEXEを作る場合、私ならJ#など使わずC#を使います。Javaを扱うプログラマといっても、大半はJava以外の言語もそれなりに使えるはずですから、既にマイクロソフトが製品提供の中止を発表しているJ#を使う必要性がないでしょう。

また、現在、多くのJavaプログラマは、アプリケーションなどではなくサーバサイドの開発でJavaを使っています。そうなると、Windowsサーバでしか動かない.netによる開発は、導入先のサーバ環境などから見送られることもあります。
    • good
    • 0

動作する理由は分かりませんが、


J#を利用しない理由として、
・Windows Only(.NET)ということ
が非常に影響しているからです。

Javaの強みは、OSにとらわれないということです。
にも関わらず、Windowsに限定しているという段階で、
利用価値は少ないと私は見ています。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!