为什么我不断遇到运行时错误?我很新,请放轻松我。我试图接受用户输入来生成一个非常简单的文件加密。我收到一个错误:
静态错误:此类没有接受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;
}
}
}
}
答案 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