J'essaie de savoir pourquoi un programme que j'ai créé dans l'EDI NetBeans 7.2.1 ne compilera pas & exécuté dans Notepad ++. C'est juste quelque chose qui me fascine et j'aimerais savoir pourquoi cela se passe. Le programme a la classe principale SalaryDemo et un autre salaire de classe qui contient les setters et getters pour le programme. Il fonctionne bien à l'exception d'une erreur de calcul. Je suis curieux de savoir comment cela fonctionnerait dans Notepad ++, et après avoir configuré Notepad ++, je trouve que cela ne fonctionne pas. J'ai essayé de passer à DOS et il a fait la même chose, donc je ne pense pas que ce soit Notepad ++.Erreur de compilation: impossible de trouver le symbole
Le programme utilise ArrayList pour un représentant des ventes et les ventes annuelles totales du représentant. Pour une raison quelconque, la machine virtuelle ne peut pas trouver le symbole pour les variables ArrayList ou Salary. C'est à ma compréhension. J'apprécierais vraiment l'aide avec ceci. C'est ma première fois alors vas-y doucement.
Voici le message d'erreur, si vous avez besoin de toute autre documentation ou code à l'appui, je l'obtiendrai immédiatement.
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
Voici le code correspondant
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;
Voici comment je courais le Compier dans Notepad ++ ... Je me rends bien compte que cela est hors de la norme cependant, je pense que cela devrait fonctionner . Le programme n'est pas si complexe.
cd "$ (répertoire-courant)" javac $ (FILE_NAME) java $ (NAME_PART)
À mon avis, c'est la même méthode utilisée lorsque vous shell DOS et essayez de compiler et exécuter le programme . À ce moment, tout ce que je sais vraiment, c'est que les paquets contiennent toutes les classes nécessaires pour un programme (projet). L'instruction package doit correspondre à la fois dans la classe principale (SalaryDemo) et dans le salaire de la sous-classe.
J'ai essayé de placer ceci dans un répertoire C: \\ salarydemofinal comme l'EDI NetBeans et cela n'a pas fonctionné. Je sais que je manque probablement quelque chose de fondamental. Comme je l'ai mentionné, cela devrait fonctionner à mon avis. J'ai réfléchi et retiré le Notepad ++ de l'équation pour le compiler. J'ai trouvé un autre article de stackoverflow suggérant que tous les fichiers java doivent être compilés en même temps comme javac * .java . Je ne sais pas si c'est une étape positive ou non. Le nombre d'erreurs a été réduit à 4, mais le scanner n'a pas été trouvé cette fois. C'était la sortie:
SalaryDemo.java:31: erreur: ne peut pas trouver le symbole Entrée scanner = nouveau Scanner (System.in); ^ symbole: class Scanner emplacement: class SalaryDemo SalaryDemo.java:31: erreur: ne peut pas trouver le symbole Scanner input = new Scanner (System.in); ^ emplacement: class SalaireDemo SalaryDemo.java:38: erreur: ne peut pas trouver le symbole ArrayList salaryArray = new ArrayList(); ^ symbole: class ArrayList emplacement: classe SalaireDemo SalaireDemo.java: 38: erreur: impossible de trouver le symbole ArrayList salaryArray = new ArrayList(); ^ symbole: classe ArrayList Lieu: classe SalaryDemo 4 erreurs
Avez-vous importé votre classe «Salaire»? – hsz
Assez difficile à dire sans voir le paquet et les instructions d'importation pour vos classes. – Catchwa
Montrez votre code. –