java - 无法在cmd Java中打开多类程序
问题描述
所以我想创建一个计算器。我创建了 Main 和 Addition 类(我知道代码很乱,并且在 Addition 类中我进行了所有计算,但这是测试程序),并且在 Intellij 中一切正常,但是当我想在 cmd 中打开它时我遇到了问题。Java 在“Main”中找不到类“Addition”。
C:\Users\skuza\IdeaProjects\Kalkulator\src\com\Cerelcode>javac Main.java Addition.java
C:\Users\skuza\IdeaProjects\Kalkulator\src\com\Cerelcode>java Main
Error: Could not find or load main class Main
Caused by: java.lang.NoClassDefFoundError: com/Cerelcode/Main (wrong name: Main)
C:\Users\skuza\IdeaProjects\Kalkulator\src\com\Cerelcode>java Main.java
Main.java:19: error: cannot find symbol
value1 = Addition.getValueA();
^
symbol: variable Addition
location: class Main
Main.java:20: error: cannot find symbol
value2 = Addition.getValueB();
^
symbol: variable Addition
location: class Main
Main.java:21: error: cannot find symbol
System.out.println(Addition.addition(value1, value2));
^
symbol: variable Addition
location: class Main
Main.java:22: error: cannot find symbol
Addition.clearConsole();
^
symbol: variable Addition
location: class Main
Main.java:26: error: cannot find symbol
value1 = Addition.getValueA();
^
symbol: variable Addition
location: class Main
Main.java:27: error: cannot find symbol
value2 = Addition.getValueB();
^
symbol: variable Addition
location: class Main
Main.java:28: error: cannot find symbol
System.out.println(Addition.substraction(value1, value2));
^
symbol: variable Addition
location: class Main
Main.java:29: error: cannot find symbol
Addition.clearConsole();
^
symbol: variable Addition
location: class Main
Main.java:33: error: cannot find symbol
value1 = Addition.getValueA();
^
symbol: variable Addition
location: class Main
Main.java:34: error: cannot find symbol
value2 = Addition.getValueB();
^
symbol: variable Addition
location: class Main
Main.java:35: error: cannot find symbol
System.out.println(Addition.division(value1, value2));
^
symbol: variable Addition
location: class Main
Main.java:36: error: cannot find symbol
Addition.clearConsole();
^
symbol: variable Addition
location: class Main
Main.java:40: error: cannot find symbol
value1 = Addition.getValueA();
^
symbol: variable Addition
location: class Main
Main.java:41: error: cannot find symbol
value2 = Addition.getValueB();
^
symbol: variable Addition
location: class Main
Main.java:42: error: cannot find symbol
System.out.println(Addition.multiplication(value1, value2));
^
symbol: variable Addition
location: class Main
Main.java:43: error: cannot find symbol
Addition.clearConsole();
^
symbol: variable Addition
location: class Main
Main.java:47: error: cannot find symbol
Addition.clearConsole();
^
symbol: variable Addition
location: class Main
17 errors
error: compilation failed
当我尝试制作 .jar 文件时,我得到了这个:
C:\Users\skuza\IdeaProjects\Kalkulator\src\com\Cerelcode>jar cf Main.jar MANIFEST.MF *.class
'jar' is not recognized as an internal or external command,
operable program or batch file.
C:\Users\skuza\IdeaProjects\Kalkulator\src\com\Cerelcode>-jar cf Main.jar MANIFEST.MF *.class
'-jar' is not recognized as an internal or external command,
operable program or batch file.
顺便说一句,我有 JDK 15
主要的:
package com.Cerelcode;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
boolean shouldLoop=true;
while(shouldLoop) {
Scanner scanner = new Scanner(System.in);
System.out.println("1.Addition\n2.Subtraction\n3.Division\n4.Multiplication\n5.Exit");
char symbol = scanner.next().charAt(0);
int value1;
int value2;
switch (symbol) {
case '1' -> {
System.out.println("Enter values: ");
value1 = Addition.getValueA();
value2 = Addition.getValueB();
System.out.println(Addition.addition(value1, value2));
Addition.clearConsole();
}
case '2' -> {
System.out.println("Enter values: ");
value1 = Addition.getValueA();
value2 = Addition.getValueB();
System.out.println(Addition.substraction(value1, value2));
Addition.clearConsole();
}
case '3' -> {
System.out.println("Enter values: ");
value1 = Addition.getValueA();
value2 = Addition.getValueB();
System.out.println(Addition.division(value1, value2));
Addition.clearConsole();
}
case '4' -> {
System.out.println("Enter values: ");
value1 = Addition.getValueA();
value2 = Addition.getValueB();
System.out.println(Addition.multiplication(value1, value2));
Addition.clearConsole();
}
case '5' -> shouldLoop = false;
default -> {System.out.println("Error");
Addition.clearConsole();
}
}
}
}
}
添加:
package com.Cerelcode;
import java.io.IOException;
import java.util.Scanner;
public class Addition {
public static int getValueA(){
Scanner scanner = new Scanner(System.in);
return scanner.nextInt();
}
public static int getValueB(){
Scanner scanner = new Scanner(System.in);
return scanner.nextInt();
}
public static int addition(int a,int b){
return a+b;
}
public static int substraction(int a,int b){
return a-b;
}
public static int division(int a,int b){
return a/b;
}
public static int multiplication(int a,int b){
return a*b;
}
public static void clearConsole() {
if (System.getProperty("os.name").contains("Windows")) {
try {
new ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor();
} catch (InterruptedException e) {
} catch (IOException e) {
e.printStackTrace();
}
}
else {
System.out.print("\033\143");
}
}
}