Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 到底什么叫args[0]没有传参?

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]没有传参,但是到底这句话什么意思?

数组 ArrayList List的数据存在是: arg[0]开始的,10个数的数组:arg[0]--arg[9]
String alias=args[0]; 该语句执行时,args[0]中没有,取值即报异常追问

那怎样让args[0]里有呢?

追答

进行赋值啊。
args[0]=**;//你想要的值。

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-05-04
用非法索引访问数组时抛出的异常。如果索引为负或大于等于数组大小,则该索引为非法索引。
这里应该是args[0]没有值
这种错误一般就关注下数组的大小 很好改的
第2个回答  2011-05-04
在控制台运行的时候传两个字符串参数进去 如:javac SetKeyPass nihao1 nihao2追问

太棒了,谢谢你!

...java.lang.ArrayIndexOutOfBoundsException: 0
你好,你这个错误提示里指向的是第四行,String Path = args[2];所以我认为不是代码出错,而你的运行时,带参执行的参数数量不够 你是这样的运行的吗?java Operatefile C:\\ 1.txt C:\\1.txt,至少要三个参数fileAndPath、FileNewName、Path ...

...java.lang.ArrayIndexOutOfBoundsException:0是怎么回事
java Sum 5 args[0]就是取第一个参数,因运行的时候没有参数所以会把索引越界异常。for(int i=0;i<=av.length;i++) 这里应该改成 for(int i=0;i<av.length;i++) , av数组长度本来只有av.length, i 索引是从0开始的,所以最zhuan后的索引应该是av.length - 1,即不能到达索引为av....

...java.lang.ArrayIndexOutOfBoundsException: 0
回答:r=Double.parseDouble(args[0]); 数组下标溢出,public static void main(String[]args)这里只定义数组又没初始化你着急用个啥啊!你完全可以在控制台让用户输入一个半径参数用嘛 Scanner in=new Scanner(System.in); Sysout.out.print("请输入半径:"); int radis=in.nextInt();

...java.lang.ArrayIndexOutOfBoundsException: 0出现异常错误_百度...
因为你没传入参数 InetAddress address = InetAddress.getByName(args[0]); 其中args[0] 需要参数 这里需要手动输入,比如运行程序的时候:java Ge www.baidu.com

...java.lang.ArrayIndexOutOfBoundsException: 0求解
ArrayIndexOutOfBoundsException:数据越界异常,看你的那个报错信息,应该是数组为空,而你去访问Array[0]了。

...java.lang.ArrayIndexOutOfBoundsException: 0
你运行时没有给main方法传参数,args[] 这个数组为空,所以下标越界。你在运行时应该先配置运行参数,给 main方法传数字进去。或者int t=12345;直接指定一个数字

java程序出现Exceptioninthread"main"是什么问题?
当你在Java程序中遇到"Exceptioninthread"main"java.lang.ArrayIndexOutOfBoundsException"这样的错误时,首先要明白这是主线程中出现的异常,具体指向了Java.lang.ArrayIndexOutOfBoundsException。这个异常的发生意味着你在访问数组时超出了其指定的索引范围。想象一下,如果你有一个长度为2的数组,但尝试...

...java.lang.ArrayIndexOutOfBoundsException: 0 到底什么叫args[0...
数组 ArrayList List的数据存在是: arg[0]开始的,10个数的数组:arg[0]--arg[9]String alias=args[0]; 该语句执行时,args[0]中没有,取值即报异常

...java.lang.ArrayIndexOutOfBoundsException: 0 at
【你这段程序的名字】 【你传给arg[]的参数】(如果不手动输入这个参数的话就会抛出数组越界的异常)。比如说,一个你的程序的名称是UseArgument,那启动命令就是:java UseArgument World。如果你不想手动使用JAVA命令的话,你也可以删掉或者注释掉“System.out.print(args[0]);”。回答完毕。

...java.lang.ArrayIndexOutOfBoundsException: 0
main方法的参数是程序启动的是设置的,你这里没有设置,肯定就是null了。

相似回答