🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Java

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

Q&A

解決済

3回答

6825閲覧

arraylist が扱えない

kwkw7575

総合スコア12

Java

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

0グッド

0クリップ

投稿2019/11/06 01:30

編集2019/11/06 02:16

お世話になります。

ArrayList<>を使を使おうとしてもエラーになります。
なぜでしょうか。

import java.io.*; import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args){ System.out.println(System.getProperty("java.class.path")); List<Character> width = new ArrayList<>(); 分は続いてます。。。

このようにエラーになります。

Main.java:10: '(' または '[' がありません。 List<Character> width = new ArrayList<>(); ^ Main.java:11: '(' または '[' がありません。 List<List<Character>> widths = new ArrayList<>();

Javac -version と入力したらこのようになります。

javac -version javac: -version は無効なフラグです。 使い方: javac <options> <source files> 使用可能なオプションには次のものがあります。 -g すべてのデバッグ情報を生成する -g:none デバッグ情報を生成しない -g:{lines,vars,source} いくつかのデバッグ情報だけを生成する -O 最適化。デバッグが抑制されるか、クラスファイルが大きくなる -nowarn 警告を発生させない -verbose コンパイラの動作についてメッセージを出力する -deprecation 推奨されない API が使用されているソースの位置を出力する -classpath <path> ユーザクラスファイルを検索する位置を指定する -sourcepath <path> 入力ソースファイルを検索する位置を指定する -bootclasspath <path> ブートストラップクラスファイルの位置を置き換える -extdirs <dirs> インストール済み拡張機能の位置を置き換える -d <directory> 生成されたクラスファイルを格納する位置を指定する -encoding <encoding> ソースファイルが使用する文字エンコーディングを指定する -source <release> 指定されたリリースとソースの互換性を保つ -target <release> 特定の VM バージョン用のクラスファイルを生成する -help 標準オプションの概要を出力する

java --versionだとこうなりました。

C:\practice>java --version Unrecognized option: --version Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.

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

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

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

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

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

quickquip

2019/11/06 01:32

何をしたらこのエラーが出ましたか。(コマンドでjavacとか? それともエディタやIDEで?) Javaのバージョン(javac -versionとか)はどうなっていますか。
kwkw7575

2019/11/06 01:40

コマンドラインからです。 編集しまして調べたバージョン結果載せました。
quickquip

2019/11/06 01:50

追記ありがとうございます。ただ javac -version ではないようです……。
kwkw7575

2019/11/06 01:55

すみません。javac だとできませんでした。
kwkw7575

2019/11/06 03:06

はい!LouiS0616!さんのおしゃる通り同じです。 swordoneさんありがとうございます。
kwkw7575

2019/11/06 03:19

Java 2 SDK,SEv1.4.0_01  Java 2 Runtime Enviroment,SEv1.4.0_01 Java Web Start Java(TM)SE Development kit 13.0.1(64-bit) の4つありました。どれのバージョンを見たほうがいいでしょうか?
退会済みユーザー

退会済みユーザー

2019/11/06 03:22

1.4.0 化石・・・(コンパイラはこれで動いてるな)
kwkw7575

2019/11/06 03:26

その場合どうすればいいでしょうか? 1.4.0のツールをアンインストールでしょうか?
退会済みユーザー

退会済みユーザー

2019/11/06 03:29

脆弱性たんまりなのでアンインストールしてください
kwkw7575

2019/11/06 03:34

アンインストールしたら 'Javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 これは新しいバージョンを何かしないといけないのでしょうか?
ironya

2019/11/06 03:46

新しいバージョンのJDKをインストールしましょう。
guest

回答3

0

ベストアンサー

ScannerはJava1.5で登場したクラスですからそれより古いJDKを使ってしまっているのではと思います。

引用元Java - Scannerが使えない|teratail (yubaさんの回答)

yubaさんの推察が正しいとすれば、質問者さんは1.5より前のJDKを使っていることになります。
ジェネリクスも1.5で導入された言語機能ですから、使えません。


20年近く、あるいはそれ以上古いコンパイラを使うのは苦行でしか無いです。
新しいものを導入しましょう。

あるいはオンラインの開発環境を使うのもアリです。

投稿2019/11/06 03:26

LouiS0616

総合スコア35668

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

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

kwkw7575

2019/11/06 03:28

古いものをアンインストールして新しいバージョンをインストールすればできますか? Java 2 SDK,SEv1.4.0_01  Java 2 Runtime Enviroment,SEv1.4.0_01 Java Web Start Java(TM)SE Development kit 13.0.1(64-bit) 4つの プログラムがあるんですが、、
LouiS0616

2019/11/06 03:37

最新のSDKがさりげなく混じってますね。 パスをJava13に通して下さい。
LouiS0616

2019/11/06 03:39 編集

なお上二つはアンインストールして問題無いように思います。 Web Startはちょっとよく分かりませんが、ググってみたところ最新のJavaでは既に廃止されているようですので、消して問題無さそうです。
kwkw7575

2019/11/06 03:47

パスの設定をしたいのですが パスの値はどの値でしょうか? 何から何まですみません。
LouiS0616

2019/11/06 03:56

javacがあるところ、javaがあるところです。 WindowsならC:\Program Files\Javaあたりを探せばあるかもしれません。Macだったら分かりません。悪しからず。
guest

0

問題となっている行より下で何か括弧の対応が崩れていたりしないでしょうか。
例えば次のコード(Main2.java)だとどうですか?

Java

1import java.util.ArrayList; 2import java.util.List; 3 4public class Main2 { 5 public static void main(String[] args) { 6 List<Character> width = new ArrayList<>(); 7 } 8}

これでも同じエラーだとしたら、java コンパイラーが正しく動けてないない印象が強いです。
javac -version でオプションが無効だというエラーになる点も含め環境的問題があるのではないでしょうか。

投稿2019/11/06 02:35

ironya

総合スコア456

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

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

kwkw7575

2019/11/06 02:53

やってみましたが同じエラーが出ました C:\practice>Javac Main2.java Main2.java:6: '(' または '[' がありません。 List<Character> width = new ArrayList<>(); ^ Main2.java:6: シンボルを解釈処理できません。 シンボル: 変数 List 位置 : Main2 の クラス List<Character> width = new ArrayList<>(); ^ Main2.java:6: シンボルを解釈処理できません。 シンボル: 変数 Character 位置 : Main2 の クラス List<Character> width = new ArrayList<>(); ^ Main2.java:6: シンボルを解釈処理できません。 シンボル: 変数 width 位置 : Main2 の クラス List<Character> width = new ArrayList<>(); ^ エラー 4 個
ironya

2019/11/06 03:25 編集

javac -J-version でバージョン表示できますか?
kwkw7575

2019/11/06 03:29

java version "1.4.0_01" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0_01-b03) Java HotSpot(TM) Client VM (build 1.4.0_01-b03, mixed mode) 表記されました。
ironya

2019/11/06 03:34

コンパイラが1.4.0だったのですね。。。 Windows環境がないので的確なことは言えませんが、1.4.0 をアンインストールできるならして、それで JDK13 が有効になるならそのままコンパイルを試してみましょう。 もし使えないようなら改めて新しいバージョンのJDKをインストールし直してみましょう。
kwkw7575

2019/11/06 03:47

ありがとうございます。 そのようにしてみます。
guest

0

「java --version」を実行するとバージョンはいくつと表示されますか?

また、以下のようにダイヤモンド演算子をやめた場合、どうなりますか?

Java

1//List<Character> width = new ArrayList<>(); 2List<Character> width = new ArrayList<Character>();

投稿2019/11/06 02:09

LineOfLightning

総合スコア253

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

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

kwkw7575

2019/11/06 02:19

ダイヤモンド演算をやめた場合 このようなえらーが出ました C:\practice>javac Main.java Main.java:10: '(' または '[' がありません。 List<Character> width = new ArrayList<Character>();
LineOfLightning

2019/11/06 02:24

java --versionの件ですが、以下のコマンドを試していただけますか? 「java -version」※ハイフン一つのみ
kwkw7575

2019/11/06 02:27

試しました \practice>java -version java version "1.8.0_231" Java(TM) SE Runtime Environment (build 1.8.0_231-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode) このように表記されました。
LineOfLightning

2019/11/06 02:34

恐らく、「new ArrayList<>()」に問題があると思われます。 通常、newの後は型名(クラス名) + 配列のための'['かコンストラクタ呼び出しのための'('が来ることが予想されるからです。 <>や()が全角になっていないか確認してみてください。 また、スペースに全角スペースが混じっていないかも。 全部全て半角であったら、今度は文字コードを疑うべきでしょう。
kwkw7575

2019/11/06 02:55

考えて頂きありがとうございます。 半角かどうか再度確かめてみます。 貴重なご意見あありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問