【问题标题】:Errors in command-line while running Java programs运行 Java 程序时出现命令行错误
【发布时间】:2017-12-04 04:59:42
【问题描述】:

我有一个完整的 Java 程序,但我的教授要检查以确保程序正常工作的方法是通过 CMD 使用命令
"java Caesar input.txt output.txt"

但是我遇到的问题是,当我使用“javac Caesar.java”进行编译时,它会编译并在文件夹中创建一个Caesar.class 文件,但是当我尝试将其作为“java caesar input.txt output.txt”运行时,它会显示错误:Could not find or load main class caesar

我在这里做错了什么?
我可以根据需要提供更多信息。

package caaesar;

import java.io.File;
import java.io.IOException;
import java.io.FileNotFoundException;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.util.Scanner;

/**
 *
 * @author Connorbboggs
 * Version 12.03.2017
 */
public class Caaesar 
{

private static Scanner sc;
private static FileWriter fw;
private static BufferedWriter bw;
private Scanner inp;
private Scanner outp;
//DecodeChar class provided by you
public static char decodeChar(int n, char ch)
{
    int ord;
    if (ch >= 'A' && ch <= 'Z')
    {
        ord = ch - 'A';
        ord += n;
        ord %= 26;
        return (char)(ord + 'A');
    }
    else if (ch >= 'a' && ch <= 'z')
    {
        ord = ch - 'a';
        ord += n;
        ord %= 26;
        return (char)(ord + 'a');
    }
    else
    {
        return ch;
    }
}

public static void main(String[] args)
{
    //File input for decode.txt with the encrypted text
    File inputFile = new File(args[0]);
    //Output for the decrypted text
    File outputFile = new File(args[1]);
    try 
    {
        //input from inputFile
        sc = new Scanner(inputFile);
        int shift = sc.nextInt();
        String decoded = "";
        //while lines are available text is fed to inputFile
        while( sc.hasNextLine())
        {
            //Lines being fed into string line
            String line = sc.nextLine();
            //for loop to feed into decoded using decodeChar
            for(int i=0; i<line.length(); i++)
            {
                decoded += decodeChar(shift, line.charAt(i));                    
            }
            decoded += '\n';
        }
        //Just to verify that the text is decrypted
        System.out.println(decoded);
        try
        {
            //create a fileWriter for outputFile
            fw = new FileWriter(outputFile);
            //write "decoded" to the file
            fw.write(decoded);
            //close the file
            fw.close();
        }
        //exception catching
        catch (IOException ex)
        {
            ex.printStackTrace();
        }
    }
    //more exception 
    catch (FileNotFoundException e) 
    {
        e.printStackTrace();
    }
}

}

【问题讨论】:

  • 大写 C 与小写 c 不同。你都试过了吗?
  • 所有 Java 标识符都区分大小写。 Caesarcaesar 不是同一个标识符。
  • 对,抱歉打错字了,同时使用大写和小写也会出现同样的错误。这是发生了什么的截图:gyazo.com/a39a5793fced9fc67b22abb22317957c
  • 在这里发布您的完整代码
  • Caesar.java 顶部有包声明吗?

标签: java command-line javac


【解决方案1】:

首先javac Caesar.java 应该说找不到文件...

您的 Caaesar 类是 caaesar 包的一部分。

完全限定的类名是caaesar.Caaesar,这是你运行这个类的方式

【讨论】:

    【解决方案2】:

    如果你的教授打算参选

    java Caesar input.txt output.txt
    

    那么您需要以下所有内容。拼写很重要,每个字母是大写还是小写也很重要。

    • 你的代码文件必须叫Caesar.java
    • 代码文件中的类必须叫Caesar
    • 代码文件中的类必须包含以public static void main(String[] 开头的方法。
    • 文件顶部必须有no包声明。

    请尽量满足所有这些条件,并注意细节。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-08
      • 1970-01-01
      • 1970-01-01
      • 2021-12-20
      • 2021-01-01
      • 2014-12-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多