JAVA程序打包为EXE文件,运行总出错!

pms 2016-01-31 10:12:52
生成的jar文件运行正常,但用jar2exe和exe4j转化为exe文件,却总是出错,出错信息如下:
java.lang.ExceptionInInitializerError
at control.GameControl.<init>(GameControl.java:70)
at main.Main.main(Main.java:9)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.exe4j.runtime.LauncherEngine.launch(Unknown Source)
at com.exe4j.runtime.WinLauncher.main(Unknown Source)
Caused by: java.lang.NullPointerException
at dto.GameDto.<clinit>(GameDto.java:17)
... 8 more
不知道为什么?java是64位的。
...全文
583 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
丶XX 2017-12-12
  • 打赏
  • 举报
回复
32位的jdk老铁
pms 2016-02-03
  • 打赏
  • 举报
回复
引用 3 楼 rui888 的回复:
你这个加log 或者调试看吧,看代码有的时候看不出来。
好的。不过,我jar文件能正常运行,代码应该没问题吧?我想,会不会是我用64位的java的缘故?
tony4geek 2016-02-02
  • 打赏
  • 举报
回复
你这个加log 或者调试看吧,看代码有的时候看不出来。
pms 2016-02-01
  • 打赏
  • 举报
回复
引用 1 楼 rui888 的回复:
Caused by: java.lang.NullPointerException at dto.GameDto.<clinit>(GameDto.java:17) 看看GameDto.java:17 是怎么写的找找具体原因/
rui888版主,我把GameDto.java的代码贴出来,麻烦你帮我看看有什么问题?谢谢! package dto; import java.util.ArrayList; import java.util.Collections; import java.util.List; import util.GameFunction; import config.GameConfig; import entity.GameAct; public class GameDto { /** * 游戏宽度 */ public static final int GAMEZONE_W =GameConfig.getSystemConfig().getMaxX()+1; /** * 游戏高度 */ public static final int GAMEZONE_H =GameConfig.getSystemConfig().getMaxY()+1; /** * 数据库中的记录 */ private List<Player> dbRecode; /** * 本地磁盘的记录 */ private List<Player> diskRecode; /** *游戏主画面 */ private boolean[][] gameMap; /** * 方块下落 */ private GameAct gameAct; /** * 下一个方块 */ private int next; /** * 等级 */ private int level; /** * 得分 */ private int nowPoint; /** * 消行 */ private int nowRemoveLine; /** * 判定是否开始 */ private boolean start; /** * 是否开启阴影 */ private boolean isShowShadow; /** * 暂停 */ private boolean pause; /** * 方块下落速度 */ private long sleepTime; public GameDto() { dtoInit(); //TODO 初始化游戏对象 } /** * DTO初始化 */ public void dtoInit(){ this.nowPoint = 0; this.pause = false; this.nowRemoveLine = 0; this.level = 0 ; this.sleepTime = GameFunction.getSleepTimeByLevel(this.level); //TODO this.gameMap = new boolean[GAMEZONE_W][GAMEZONE_H]; } public List<Player> getDbRecode() { return dbRecode; } public void setDbRecode(List<Player> dbRecode) { setFillRecode(dbRecode); this.dbRecode = dbRecode; } public List<Player> getDiskRecode() { return diskRecode; } public void setDiskRecode(List<Player> diskRecode) { setFillRecode(diskRecode); this.diskRecode = diskRecode; } /** * 对记录排序。不满5条则填满避免空指针异常 * @param players * @return */ private List<Player> setFillRecode(List<Player> players){ //如果记录为空,就创建 if(players==null){ players = new ArrayList<Player>(); } //记录数小于5,填充 while(players.size()<5){ players.add(new Player("No Data", 0)); } Collections.sort(players); return players; } public boolean[][] getGameMap() { return gameMap; } public void setGameMap(boolean[][] gameMap) { this.gameMap = gameMap; } public GameAct getGameAct() { return gameAct; } public void setGameAct(GameAct gameAct) { this.gameAct = gameAct; } public int getNext() { return next; } public void setNext(int next) { this.next = next; } public int getLevel() { return level; } public void setLevel(int level) { this.level = level; //计算下落速度 this.sleepTime = GameFunction.getSleepTimeByLevel(this.level); } public int getNowPoint() { return nowPoint; } public void setNowPoint(int nowPoint) { this.nowPoint = nowPoint; } public int getNowRemoveLine() { return nowRemoveLine; } public void setNowRemoveLine(int nowRemoveLine) { this.nowRemoveLine = nowRemoveLine; } public boolean isStart() { return start; } public void setStart(boolean start) { this.start = start; } public boolean isShowShadow() { return isShowShadow; } public void changeShowShadow() { this.isShowShadow = !this.isShowShadow; } public boolean isPause() { return pause; } public void changePause() { this.pause = !this.pause; } public long getSleepTime() { return sleepTime; } }
tony4geek 2016-02-01
  • 打赏
  • 举报
回复
Caused by: java.lang.NullPointerException at dto.GameDto.<clinit>(GameDto.java:17) 看看GameDto.java:17 是怎么写的找找具体原因/

50,503

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧