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

Java 获取用户int输入-此类没有接受字符串[]的静态void main方法,java,class,input,java.util.scanner,main,Java,Class,Input,Java.util.scanner,Main,你知道为什么我总是在运行时出错吗?我是新来的,请对我宽容一点。我正在尝试接受用户输入来生成一个非常简单的文件加密。我得到一个错误: 静态错误:此类没有接受字符串[]的静态void main方法 我有一个接受字符串[]的主要方法!我迷路了。有什么建议吗 import java.io.*; import java.util.Scanner; public class Encryption { public static void main(String[] args, String exist

你知道为什么我总是在运行时出错吗?我是新来的,请对我宽容一点。我正在尝试接受用户输入来生成一个非常简单的文件加密。我得到一个错误:

静态错误:此类没有接受字符串[]的静态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;
      }
   }
  }
}

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

所以不是

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

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

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

您还可以使用foreach循环收集这些参数。

您的方法接受String[],true,但也接受其他参数,尤其是String和String

main方法必须具有签名
publicstaticvoidmain(字符串args[])


在Java中,根据方法签名调用方法。关于这一点,可以在网上找到很多信息,但实际上方法是根据名称和参数调用的。这意味着方法
myMethod(int)
myMethod(String)
myMethod(int,int)
都是不同的方法,可以单独调用(这被顺便称为方法重载)。

您的主方法需要使用一个仅由
String[]args
组成的参数列表来定义。您还传递了
String existing,String encrypted
,这意味着JVM会忽略或忽略您的主方法

看看这篇文章,了解如何使用
args
param传递这些参数