首页 > 解决方案 > 无法在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");
        }

    }
}

标签: javaintellij-ideacmdjar

解决方案


推荐阅读