質問するログイン新規登録
Java

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

コマンドライン

コマンドライン(別名:Command Line Interface)は、ユーザに命令の入力を促す(プロンプト)文字列の表示を行い、すべての操作をキーボードを用いて文字列を打ち込む事でプログラムを走らせるユーザインターフェースです。

Q&A

解決済

2回答

2213閲覧

Java コマンドライン引数

taka0145

総合スコア7

Java

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

コマンドライン

コマンドライン(別名:Command Line Interface)は、ユーザに命令の入力を促す(プロンプト)文字列の表示を行い、すべての操作をキーボードを用いて文字列を打ち込む事でプログラムを走らせるユーザインターフェースです。

0グッド

1クリップ

投稿2021/09/01 14:56

編集2021/11/01 05:10

0

1

前提・実現したいこと

Javaでコマンドライン引数を用いた四則演算のプログラムを書きたいです。

コード

java

1class Main { 2 public static void main(String args[]) { 3 if(args.length != 3) { 4 System.exit(0); 5 } 6 if(args[2].equals("+")) { 7 System.out.println(Integer.parseInt(args[0]) + Integer.parseInt(args[1])); 8 } else if(args[2].equals("-")) { 9 System.out.println(Integer.parseInt(args[0]) - Integer.parseInt(args[1])); 10 } else if(args[2].equals("*")) { 11 System.out.println(Integer.parseInt(args[0]) * Integer.parseInt(args[1])); 12 } else if(args[2].equals("/")) { 13 System.out.println(Integer.parseInt(args[0]) / Integer.parseInt(args[1])); 14 } 15 } 16}

起きている問題

エラー: クラス名'Main'が受け入れられるのは、注釈処理が明示的にリクエストされた場合のみです

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

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

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

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

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

mather

2021/09/01 15:58

ソースコードはコードブロック( ``` )で囲んで提示してください。 https://teratail.com/help/question-tips#questionTips3-5-1 あと、現在提示されているコードをコンパイルしたときに出るエラーは本当にそれですか?
swordone

2021/09/01 17:05

コマンドラインに文字列入れてます?
taka0145

2021/09/01 17:16

文字列を入力する所まで進まないです。
mather

2021/09/01 17:49

示されたコードには class Calc と宣言されていて、エラーには CalcInt というクラス名が示されているので明らかになにか間違えています。 改めて書きますが、現在提示されているコードをコンパイルしたときのエラー、または実行したときのエラーを提示してください。
hoshi-takanori

2021/09/01 19:06

コンパイルや実行の方法も具体的に書きましょう。Eclipse などの IDE を使ってるのか、それともコマンドプロンプトやターミナルからコマンドを叩いてるのか。後者の場合、実際に実行したコマンドをコピペしてください。
guest

回答2

0

文字列を入力する所まで進まないです。

「コマンドライン引数」を勘違いされているかと。
コマンドライン引数は実行時にコマンドプロンプトなどに入力するものであって、「入力するところまで進まない」という類いのものではないです。
プログラム実行中に入力させたいならScannerなどを使う必要があります。

投稿2021/09/01 17:29

swordone

総合スコア20675

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

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

0

ベストアンサー

このエラーは、javacが出すものなので、おそらく

  • ソースファイルにCalcInt.javaというファイル名を付けている
  • javac CalcIntと入力してコンパイルしようとしている

のでは。

このままコンパイルを成功させたければ、javac CalcInt.javaでコンパイルしてから、作成されたCalc.class(CalcInt.classではない)をjava Calcで実行してください。

しかし、publicなクラス名(今回はCalc)とファイル名のベース部分が異なるのはJavaの命名規則的におかしいので、ソースファイル名をCalc.javaに修正するか、あるいはクラス名をCalcIntに修正するか、どちらかを選んでください。

なお、ソースファイルが単一なので、Java 11以降であれば、java Calc.java(あるいはjava CalcInt.java)で、そのまま(メモリ上にclassファイルを作成して)実行することも可能です。


その上で、コードの内容についての問題点がいくつかあります。

  • +などの演算子が格納されるのはargs[1]なので、if文の条件式がおかしい。
  • if文の条件式が成立したさいの処理に登場するargs[1]args[2]の誤り。

なお、コマンドライン引数に指定した*は、UNIX系のシェル(bash, zshなど)ではファイル名に展開されるので、\*あるいは'*'と書く必要があります。

投稿2021/09/01 18:28

編集2023/03/01 02:19
Daregada

総合スコア11992

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問