如果是1.7以前的版本,则直接修改环境变量JAVA_HOME;
如果是1.7及以后的,则可能要修改C:\ProgramData\Oracle\Java\javapath\中的三个java,可重命名,再使用时改回来即可。
并且环境变量path中,将%JAVA_HOME%\bin放在最前面 path的路径中,有的路径目录下也包含java.exe,然后该路径在%JAVA_HOME%\bin的前面,故运行时优先选择前面路径下的java.exe,所以无论如何改JAVA_HOME,java -version都不变
如果不知道java在哪,可执行where java来查看。
先打开想要更改版本的jdk,进入bin目录下,找到java.exe javaw.exe javaws.exe
将这三个复制,然后找到目标文件夹
将这三个文件粘贴并替换原有的文件
你的主函数没有错误,你应该恢复主函数原来的样子
public static void main(String[] args){User user=new User()
user.setId(1001)
user.setName("user")
user.setStuNum("1001")
new TicketBooker(user)
}
你的Java程序是在109行JCB_Year.setSelectedIndex(date.getYear()+1900-Integer.parseInt(arrayYear[0]))这句出问题了,因为今年是2018年,date.getYear()+1900=2018,2018-2014=4,JCB_Year.setSelectedIndex(4)而你的private JComboBox JCB_Year=new JComboBox(arrayYear)arrayYear是只定义了三个字符串的数组
private static final String arrayYear[]={"2014","2015","2016"}所以造成JComboBox下标Index越界,本来下标只有0到2你访问到了4.
改正办法把arrayYear数组加两个元素,把private static final String arrayYear[]={"2014","2015","2016"}改成private static final String arrayYear[]={"2014","2015","2016","2017","2018"}就没问题了.注意,arrayYear数组 2019年还需要加"2019",2020年还需要加"2020"