获取用户int输入 - 此类没有接受String []的静态void main方法

时间:2015-10-07 16:04:32

标签: java class input java.util.scanner main

为什么我不断遇到运行时错误?我很新,请放轻松我。我试图接受用户输入来生成一个非常简单的文件加密。我收到一个错误:

静态错误:此类没有接受String []的静态void main方法。

我有一个主要的方法接受字符串[]!我搞不清楚了。有什么建议吗?

import java.io.*;
import java.util.Scanner;


public class Encryption
{

public static void main(String[] args, String existing, String encrypted) throws IOException
   {

   boolean eof = false;
   int key = 10;

   Scanner scan = new Scanner(System.in);
   key = scan.nextInt();

 /* Your encryption program should work like a filter, reading the contents of one file...
 */

   FileInputStream inStream = new FileInputStream(existing);
   DataInputStream inFile = new DataInputStream(inStream);

   FileOutputStream outStream = new FileOutputStream(encrypted);
   DataOutputStream outFile = new DataOutputStream(outStream);

   while (!eof)
   {
      try
      {
         byte input = inFile.readByte();

 /* modifying the data into a code...
  */            
          input += key;

 /* and then writing the coded contents out to a second file.
 * The second file will be a version of the first file, but written in a secret code.
 */            

      outFile.writeByte(input);
      }
      catch (EOFException e)
      {
         eof = true;
      }
   }
  }
}

3 个答案:

答案 0 :(得分:0)

你的main方法只需要String [] args。在您的示例中,您已加密并作为字符串存在。如果JVM具有不同的输入参数,则JVM将无法识别您的主要方法。

所以而不是

main(String[] args, String existing, String encrypted)
你应该

main(String[] args)

然后从args数组中获取所需的两个参数,并将它们分配给具有相同名称的字符串。例如:

String existing = args[0];
String encrypted = args[1];

您也可以使用foreach循环收集这些内容。

答案 1 :(得分:0)

您的方法接受String [],true,但它也接受其他参数,特别是String和String。

您的主要方法必须具有签名public static void main(String args[])

在Java中,根据方法签名调用方法。可以在网上找到大量有关此信息的信息,但实质上是根据名称和参数调用方法。这意味着方法myMethod(int)myMethod(String)以及myMethod(int, int)都是不同的方法,可以单独调用(这通常被称为方法重载)。< / p>

答案 2 :(得分:0)

您的主要方法需要使用仅包含String[] args的参数列表进行定义。您还传递了String existing, String encrypted,这意味着JVM会忽略或忽略您的主要方法。

看一下这篇文章,了解如何使用args参数传递这些参数。 What is "String args[]"? parameter in main method Java