NetBeans 7.2.1 IDE で作成したプログラムがコンパイルされず、Notepad++ で実行されない理由を調べています。それは私にとって魅力的なことであり、なぜこれが起こっているのか知りたい.
このプログラムには、メイン クラス SalaryDemo と、プログラムのセッターとゲッターを含む別のクラス Salary があります。計算ミス以外は問題なく動きます。これが Notepad++ でどのように動作するのか興味があり、Notepad++ をセットアップした後、これが動作しないことがわかりました。私はdosにシェルアウトしようとしましたが、同じことをしたので、Notepad ++ではないと思います。
このプログラムは、営業担当者と営業担当者の年間総売上高に ArrayList を使用します。何らかの理由で、VM は ArrayList または Salary 変数のシンボルを見つけることができません。これは私の理解です。これについての助けを本当に感謝します。初めてなのでお手柔らかに。
エラー メッセージは次のとおりです。その他のサポート ドキュメントまたはコードが必要な場合は、すぐに投稿します。
NPP_EXEC: "Compile and Run"
CD: Matches Current Directory
Current directory: Matches CD:
javac SalaryDemo.java
Process started >>>
SalaryDemo.java:37: error: cannot find symbol
ArrayList<Salary> salaryArray = new ArrayList<>();
^
symbol: class Salary
location: class SalaryDemo
SalaryDemo.java:37: error: unexpected type
ArrayList<Salary> salaryArray = new ArrayList<>()
^
required: class
found: <E>ArrayList<E>
where E is a type-variable:
E extends Object declared in class ArrayList
SalaryDemo.java:52: error: cannot find symbol
Salary employee = new Salary();
^
symbol: class Salary
location: class SalaryDemo
SalaryDemo.java:52: error: cannot find symbol
Salary employee = new Salary();
^
symbol: class Salary
location: class SalaryDemo
SalaryDemo.java:103: error: cannot find symbol
Salary calcSalary = new Salary();
^
symbol: class Salary
location: class SalaryDemo
SalaryDemo.java:103: error: cannot find symbol
Salary calcSalary = new Salary();
^
symbol: class Salary
location: class SalaryDemo
6 errors
ここに関連するコードがあります
SalaryDemo (main class)
package salarydemofinal;
// Imports the DecimalFormat class and all java.util classes
import java.text.DecimalFormat;
SalaryDemo (main class)
// Public class SalaryDemo matches the filename and is accessable
// by methods outside the SalaryDemo class.
public class SalaryDemo
{
public static void main(String[] args)
{
// Initialize Scanner.
Scanner input = new Scanner(System.in);
// Initialize DecimalFormat to format percentages.
DecimalFormat df = new DecimalFormat("####%"); // Initialize
// Initialize the Array list and use the Salary class to store and
// manipulate elements of the array.
ArrayList<Salary> salaryArray = new ArrayList<Salary>();
String newEmployee = "";
double newSales = 0;
double counter;
double setSalesDifference;
double setTCompDifference;
double nqDifference;
Salary class
package salarydemofinal;
public class Salary {
// Initialize local Salary class variables
private String name; // Holds employee name
private double base = 4000; // Holds fixed monthly salary
private double sales; // Holds annual sales figure data-
private double calc; // Holds data calculate commission
private double com = .25; //Holds commission percentage multiplier
private double totalComp; // Holds sum of commission and annual salary data
private double annualSalary; // Holds data derived from 12 months of base rate
private double salesTarget = 120000;
private double threshold = salesTarget * .80;
private double commission; // sets the commission.
private double annualCompensation;
private double acceleratedSales;
private double notQualified;
これは、Notepad ++でコンパイラを実行する方法です...これは標準外であることは認識していますが、これは機能するはずだと感じています。プログラムはそれほど複雑ではありません。
cd "$(CURRENT_DIRECTORY)" javac $(FILE_NAME) java $(NAME_PART)
私の意見では、これは DOS にシェルアウトしてプログラムをコンパイルして実行しようとするときに使用する方法と同じです。現時点でわかっていることは、1 つのプログラム (プロジェクト) に必要なすべてのクラスがパッケージに含まれているということだけです。package ステートメントは、メイン クラス (SalaryDemo) とサブクラス Salary の両方で一致する必要があります。
これを NetBeans IDE と同じように C:\\salarydemofinal ディレクトリに配置しようとしましたが、うまくいきませんでした。私はおそらく何か基本的なことが欠けていることを知っています。私が述べたように、これは私の意見ではうまくいくはずです。
私はそれについて考え、Notepad ++を式から外し、DOSにシェルアウトしてこれをコンパイルしようとしました.javac * .javaなどのすべてのJavaファイルを一度にコンパイルする必要があることを示唆する別のstackoverflow記事を見つけたからです。それが前向きな一歩かどうかはわかりません。エラー数は 4 に減少しましたが、今回はスキャナーが見つかりませんでした。これは出力でした:
SalaryDemo.java:31: エラー: シンボルが見つかりません Scanner input = new Scanner(System.in); ^ シンボル: クラス スキャナーの場所: クラス SalaryDemo SalaryDemo.java:31: エラー: シンボルが見つかりません スキャナー入力 = new Scanner(System.in); ^ シンボル: クラス スキャナの場所: クラス SalaryDemo SalaryDemo.java:38: エラー: シンボル ArrayList が見つかりません。^ シンボル: クラス ArrayList 場所: クラス SalaryDemo SalaryDemo.java:38: エラー: シンボル ArrayList が見つかりませんsalaryArray = new ArrayList(); ^ 記号: クラス ArrayList 場所: クラス SalaryDemo 4 エラー