Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 到底什么叫args[0]没有传参?
importjava.io.*;importjava.security.*;importjava.security.cert.Certificate;publicclas...
import java.io.*;
import java.security.*;
import java.security.cert.Certificate;
public class SetKeyPass{
public static void main(String args[ ]) throws Exception{
String name="mykeystore";
String alias=args[0];
char[ ] storepass="20085217".toCharArray();
char[ ] oldkeypass=args[1].toCharArray();
char[ ] newkeypass=args[2].toCharArray();
FileInputStream in=new FileInputStream(name);
KeyStore ks=KeyStore.getInstance("JKS");
ks.load(in,storepass);
Certificate[ ] cchain=ks.getCertificateChain(alias);
PrivateKey pk=(PrivateKey)ks.getKey(alias,oldkeypass);
ks.setKeyEntry(alias,pk,newkeypass,cchain);
in.close();
FileOutputStream output=new FileOutputStream("other");
ks.store(output,storepass);
output.close();
}
}
我知道问题出在第七行,并且查阅其他资料貌似原因是args[0]没有传参,但是到底这句话什么意思? 展开
import java.security.*;
import java.security.cert.Certificate;
public class SetKeyPass{
public static void main(String args[ ]) throws Exception{
String name="mykeystore";
String alias=args[0];
char[ ] storepass="20085217".toCharArray();
char[ ] oldkeypass=args[1].toCharArray();
char[ ] newkeypass=args[2].toCharArray();
FileInputStream in=new FileInputStream(name);
KeyStore ks=KeyStore.getInstance("JKS");
ks.load(in,storepass);
Certificate[ ] cchain=ks.getCertificateChain(alias);
PrivateKey pk=(PrivateKey)ks.getKey(alias,oldkeypass);
ks.setKeyEntry(alias,pk,newkeypass,cchain);
in.close();
FileOutputStream output=new FileOutputStream("other");
ks.store(output,storepass);
output.close();
}
}
我知道问题出在第七行,并且查阅其他资料貌似原因是args[0]没有传参,但是到底这句话什么意思? 展开
3个回答
展开全部
用非法索引访问数组时抛出的异常。如果索引为负或大于等于数组大小,则该索引为非法索引。
这里应该是args[0]没有值
这种错误一般就关注下数组的大小 很好改的
这里应该是args[0]没有值
这种错误一般就关注下数组的大小 很好改的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在控制台运行的时候传两个字符串参数进去 如:javac SetKeyPass nihao1 nihao2
追问
太棒了,谢谢你!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询