質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

4回答

1518閲覧

Java8,Java9等を抽象的に指す語

退会済みユーザー

退会済みユーザー

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

1グッド

1クリップ

投稿2019/05/07 01:11

Java8 Java9などと言いますが、それらを抽象的に述べる語は何ですか?
JVM Specificationで調べるとJVMのバイトコード仕様等が出てきます。
JavaSEで調べるとAPIだと出てきます。Javaプログラム上から利用できるパッケージやクラスが定義されています。
しかし、例えばJava9でJigsawが実装されましたが、JigsawはAPIではありませんよね?Java SEという語はJigsawを含めれないと思います。
では、Java8などと言った時のAPI以外も含めた仕様全体を指す語は、抽象的には何ですか?

DrqYuto👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/05/07 01:14

ちょっと意味がわかりません。 あとそれを聞いてどうしたいのでしょうか。
退会済みユーザー

退会済みユーザー

2019/05/07 02:03

例えばオラクルは「Java SE 8」という語を使用しています。 しかしJava SEはAPIに限定されるはずです。 では、そのAPIに限定するという意味を除去した、Jigsaw等非APIな仕様も含めた仕様を何というのですか? Java8-12等の語を抽象的に指す語です。 なぜこれで伝わらないのか分かりません。 これはただその1語を回答するか、そのような語は存在しないと回答すれば解決する問題であり、「問題・課題が含まれている質問」です。 漠然としていません。 意味が分からないと言っている人の意味が分かりません。
退会済みユーザー

退会済みユーザー

2019/05/07 02:06

「Java SE 8はJava 8の仕様全体の一部を指す語である。」 この理解は正しいですか? では、その残りの部分も含めた語は何ですか? Java8-12を抽象的に指す語です。
退会済みユーザー

退会済みユーザー

2019/05/07 02:21

素直に言ってなぜこれで伝わらないのか、低評価を押す人が居たのか分からないし、失望しました。私は十分に詳細に述べていたし、日本語圏と英語圏でのJava SEの定義が異なっている事が原因であると突き止めれたはずです。私が考えるにこの件について間違っていたのは日本語圏の知識及びそれを信じていた数名の回答者です。しかしそれを低評価する機能はこのサイトにありません。
guest

回答4

0

うーん……何というか思い違いをしているような。

言語仕様のバージョン: Java Specific Version
Java 仮想マシン仕様: JavaVM Specific Version

の二つが組み合わさることで、Java の言語仕様とその実行環境が固定されます。
※これが「狭義の」Java xx

これにコアライブラリ他、各種標準ライブラリを組み合わせることで、
Java SE、Java ME、 Java EE
といった環境が構築されます。
※Java EE の場合、追加ライブラリの仕様が提示されているのであって、実装は標準化されませんが

ですから「API以外も含めた仕様全体」としては、SE,ME,EE といった環境を指すものになるはずです。
それを言うならば「API を含めた仕様全体」という言い方の方が正しいでしょう。
※API以外、というと、API が主になってしまいます

投稿2019/05/07 02:08

tacsheaven

総合スコア13703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/05/07 02:23

私は最初からこう書いています。 >では、Java8などと言った時のAPI以外も含めた仕様全体を指す語は、抽象的には何ですか?
tacsheaven

2019/05/07 02:26

だから、API以外も含めた、というと、API が主で、他が従になってしまいます。ですが Java の構造は、言語仕様が主で、コアライブラリ(API)は従なのですよ?
tacsheaven

2019/05/07 02:28

ものすごい特殊な環境ではありますけど、Java のコアライブラリを一切使わない(ライブラリをフルスクラッチする)でも、Java が動作する環境は存在しうるのです。
退会済みユーザー

退会済みユーザー

2019/05/07 02:32

>API以外も含めた、というと、API が主で、他が従になってしまいます。 同意できません。「API以外も含めた」という語は「JavaSEはAPIである」という定義からの流れでそれ以外も含めたものをこそ指定したがっているという意味です。「人以外の動物」といった時「人が主になる」と考えるんですか?意味不明です。 私はどこに間違いがあるかを特定させる優れた質問文だったと思います。「JavaSEはAPIである」という日本語圏に流通した定義が間違いでした。それを明らかにさせる質問文でした。
tacsheaven

2019/05/07 02:43

言葉遊びをしたければ他のところでやってください。「JavaSE は API である」が表現として誤りを招くものであることは確かですが、だからといってあなたの質問が不適切なものであることは変わりありませんよ。 貴方自身は Java SE は API であるという、他で見た定義を信じていたからこそああいう質問になったのでしょう? (疑問に思っていれば 「Java SE は API である」というのは誤りですか? という質問になるでしょう)
退会済みユーザー

退会済みユーザー

2019/05/07 02:54

主とか従とか言葉遊びを始めたのはあなたです。私はその日本語圏に流通していた定義に基づいて思考して、理解に苦しんでいました。その状況を示す優れた質問文だったと思います。そしてこれは日本語圏に流通している定義が間違いであると明らかにする優れた記事になりました。
退会済みユーザー

退会済みユーザー

2019/05/07 02:56

もしかしてあなたはQiitaやwikipediaの定義を信じていたから私が悪い、と言いたいんですか?もしそうなら幼稚すぎるので考え直してください。
guest

0

8とか9とか言うのはバージョン番号ですよね?それらを抽象的にまとめた語というなら「Java」そのものになるのでは?
「Word2010とWord2013とを抽象的にまとめた語は何ですか?」と聞かれているような感じだと受け取ったのですが…

投稿2019/05/07 03:01

swordone

総合スコア20651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/05/07 03:04

Javaは言語を指します。Java 8やJava 9にとって言語仕様はそれが意味する範囲の一部でしかありません。
退会済みユーザー

退会済みユーザー

2019/05/07 03:27

訂正します。Javaはプログラミング言語の一種を意味しますが、Java周辺の仕様を総称する場合もあるようです。Java Virtual MachineやJava ArchiveがJava言語固有ではない事を考えれば、Javaという語は後者の意味で用いた方が正しいかもしれません。
guest

0

JavaSEで調べるとAPIだと出てきます。

は、明らかに間違いなので無視してよいと思います。出典は知りませんが。

この図でも、明確にJavaSEをAPIとは、いってないですね。

とはいえ、Java SE APIの省略といわれたら文脈によるので、わからないです。

私の疑問への答えは「Java SE」です。

オラクルの中だと「Jave SE Platform」または「Java Platform, Standard Edition」と言ってるように見えます。もちろん省略して「Java SE」と記載されることもあると思いますが。

省略して「Java SE」だとするとAPIと誤解するかもしれませんね。

投稿2019/05/07 09:42

momon-ga

総合スコア4820

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/05/07 11:02

そう、私の質問文は正しい知識を持っている人が読めば、その一文が明らかに間違っていると分かるんです。質問文はずいぶん低評価されましたが、私は質問文をそのように書いた事は正しかったと思います。
退会済みユーザー

退会済みユーザー

2019/05/07 11:14

オラクルはそれをPlatformをつけずにJava SEと呼んでいるようです。「Java SE 概要」というページがありますがPlatformとつけられていません。
momon-ga

2019/05/07 11:19

たぶん、こちらを見てると思いますが・・・ https://www.oracle.com/technetwork/java/javase/overview/index.html 先頭に「Java Platform, Standard Edition (Java SE) 」とありますし、各バージョンのリンクでも 「Java Platform, Standard Edition 12」のように記載されていますよ。 もちろん、省略されてる表記があることは知っています。
退会済みユーザー

退会済みユーザー

2019/05/07 11:25

私が言っているのは「Java SE Platform」と記述される事はほとんどないという意味です。「Java SE」「Java Platform」「Java Platform, Standard Edition」「Java Platform SE」は検索すると良く出てきます。
momon-ga

2019/05/07 11:31

なるほど。私は、最初のリンクの図表で「Jave SE Platform at a Glance」とあったので、「Jave SE Platform」と回答しました。
退会済みユーザー

退会済みユーザー

2019/05/07 11:39

訂正します。オラクルが「Java SE Platform」と書いている箇所をいくつか確認しました。しかし単に「Java SE」と記述される方が多いのはたぶん正しいです。 ネット全体でもJava SEが優勢です。 Google検索 「Java SE platform」35,300 件 「Java Platform, Standard Edition」211,000 件 「Java Platform SE」287,000 件 「Java Platform」 2,010,000 件 「Java SE」7,040,000 件
momon-ga

2019/05/07 11:52

別にあなたが何と呼ぼうかなんでもいいと思いますよ。 略称が多く使われるのは、別に普通では? 回答にも書きましたが、Java SE APIの略称をJava SEというのもあると思いますし、それ自体が間違いとは思いませんよ。(回答にある通り、文脈による)
momon-ga

2019/05/07 11:55

念のため回答を再度記載しますが >オラクルの中だと「Jave SE Platform」または「Java Platform, Standard Edition」と言ってるように>見えます。もちろん省略して「Java SE」と記載されることもあると思いますが。 「見えます」と言っただけで、あなたに対して「Jave SE Platform」というべきだといってるわけではありません。
guest

0

ベストアンサー

どうやらオラクルはそれをJava SEと呼んでいるようです。
私の疑問への答えは「Java SE」です。

日本語圏でJava SEで検索すると「APIである」という説明が出てきます。
例えばwikipediaにこうあります。
>Java Platform, Standard Edition または Java SE(バージョン5.0までは Java 2 Platform, Standard Edition または J2SEと呼ばれていた)は多くのJavaプラットフォームプログラムで役立つJava APIの集合体である。

Qiitaの記事「Javaを始めた頃によくある疑問。Java SEって何?JDKとJREえ?」はこう説明しています。
>Java SEとかって何なの?これすなわちAPIのこと。

しかし、英語圏のwikipediaではこう定義されています。
>Java SE defines a range of general-purpose APIs—such as Java APIs for the Java Class Library—and also includes the Java Language Specification and the Java Virtual Machine Specification.[2]

Java SEという語はAPIだけではありません。恐らく各バージョンのJavaの全体仕様を指す語です。

投稿2019/05/07 02:14

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ozwk

2019/05/07 03:49

純粋に気になったんですが英語圏のwikipediaが正であると判断した理由はなんですか?
swordone

2019/05/07 03:56

なんとなく言いたいことはわかったけど、それなら「APIの定義は何か」「JigsawはAPIに含まれないのか」も確認が必要だと思います。
退会済みユーザー

退会済みユーザー

2019/05/07 04:06

>英語圏のwikipediaが正であると判断した理由 英語圏のwikipediaの定義だと私がこれまで読んできた膨大なJava界隈の文章を最も良く解釈できるからです。オラクルの文章もその定義で良く解釈できます。 >「APIの定義は何か」 OracleはJava SE 8 APIというタイトルでjavadocを公開しています。つまりパッケージ名やクラス名やメソッド名等がAPIです。APIという語はJavaより前からある語であり、やはりそのような意味です。コンパイラやビルドツールをAPIと呼ぶ事はありません。
fuzzball

2019/05/07 05:14

日本語Wikipediaについては、その引用文の後ろに「Java仮想マシン、APIなどから構成される。」と書かれています。
退会済みユーザー

退会済みユーザー

2019/05/07 05:23

それは事実ですが、言語仕様を含むことを指摘していない事、前文から区切られていて「APIの集合体である」という定義がある事は問題です。
退会済みユーザー

退会済みユーザー

2019/05/07 05:27

補足。最も全般的概要を述べるべき最初の文で「APIの集合体である。」と”。”で区切って言い切ってしまっている事が問題です。
fuzzball

2019/05/07 05:46 編集

確かに「APIの集合体である」は謎ですね。 ・初版では「JavaVM(Java仮想マシン)、APIなどから成る」のみ ・2007年2月の修正で「Java APIの集合体である」のみ ・2014年2月の修正で「Java仮想マシン、APIなどから構成される」追記 という流れになっていました。 個人的には、2014年2月の修正で「Java APIの集合体である」を削除すべきだったと思います。 >>言語仕様を含むことを指摘していない これは「など」に含まれるのでしょう。(含まないとは書かれていませんし) 私は専門外なのでやりませんが、おかしいと思われるのであれば記事を編集してみてはどうでしょうか?それこそがWikipediaだと思いますので。
退会済みユーザー

退会済みユーザー

2019/05/07 10:59

初版で正しく書かれていたのが編集しなおされたとすれば、何度直してもまたそうなるのかもしれません。
退会済みユーザー

退会済みユーザー

2019/05/08 04:08

補足。teratailでもj2seをAPIであると説明する記事があります。しかも高評価がついている上に、現在「j2se」でぐぐると一番上に出ます。 https://teratail.com/questions/1501 >J2SE・・・Javaプログラム開発で使う基本的なAPIの集まり。(必須) さらに検索すると、いくつかの個人ブログでもj2seやjava seをAPIであると説明しています。個人ブログなので参照は控えますが例えばこのような文が書かれています。 >簡単に言うと、これらはAPIといって、いわゆる関数群です。 日本語圏で間違った定義が広まっているという解釈は正しいと思います。
退会済みユーザー

退会済みユーザー

2019/05/08 04:11

なお、特にAPIについて述べている文脈ではない場合、java seやj2seという記述だけでjava se apiやj2se apiを意味する事はないと思います。全般的説明としてその単語の意味を説明する場合、「j2seはAPIである」という説明は間違いです。「どのAPIを使っているか?」というようなAPIへの関心が生じている文脈では「j2se」と回答する事は可能だろうと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問