我目前正在尝试开发一种可以对任何类型的文档进行数字签名的应用程序。我已经根据this tutorial声明了GenSig类。但是,在我的应用程序中,应该有用于输入文件的GUI。所以我有;

File file = jFileChooser2.getSelectedFile();

FileInputStream fin = new FileInputStream(file);
byte fileContent[] = new byte[(int)file.length()];
fin.read(fileContent);

String strFileContent = new String(fileContent);

GenSig gensig = new GenSig();
GenSig.main(strFileContent);


它在行GenSig.main(strFileContent);上抛出了一个错误,其中根据整个source of GenSig class变量应为String[] args,因此我无法编译该应用程序。我假设问题出在字符串的类型上,而不是数组,但是我不知道我在firts行上声明了哪个数组,File对象的哪个变量,我需要使用它作为输入。

我知道我做错了,很不幸,在Java中,我只是初学者,所以我需要一些帮助。


我应该插入文件对象中的哪个变量作为GenSig类的输入?
有没有更简单的方法来用Java签名文档?

最佳答案

如果您按照本教程的字母进行操作,则应将要“签名”的文件名作为参数传递:

final File file = jFileChooser2.getSelectedFile();
GenSig.main(new String[] {file.getAbsolutePath()});


请注意,由于您是静态调用main方法,因此实际上不需要创建GenSig类的实例。

10-08 20:26