运行exe4j打包好的java桌面应用程序后出现error.log日志错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运行exe4j打包好的java桌面应用程序后出现error.log日志错误相关的知识,希望对你有一定的参考价值。

java.io.IOException: Cannot run program "c:\docume~1\admini~1\??\demo\bin\mysql/StopMySQL.bat": CreateProcess error=123, ????????????ò?í±ê
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at com.vivoinfo.steelmis.View.Main$1.windowClosing(Main.java:250)
at java.awt.AWTEventMulticaster.windowClosing(Unknown Source)
at java.awt.Window.processWindowEvent(Unknown Source)
at javax.swing.JFrame.processWindowEvent(Unknown Source)
at java.awt.Window.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.io.IOException: CreateProcess error=123, ????????????ò?í±ê
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(Unknown Source)
at java.lang.ProcessImpl.start(Unknown Source)
... 20 more
StopMySQL.bat是我写的调用mysql服务的bat文件,c:\docume~1\admini~1\??显示的真正编码是:C:\Documents and Settings\Administrator\桌面\
但每次运行exe执行文件后就出现这样的错误日志,很头疼,不知道怎么解决!希望大家尽快帮助我!不胜感激!!
我在不是中文的目录下点击exe执行文件完全正常啊!

参考技术A 可能是中文引起的乱码,换一个没有中文目录的路径试试.. 参考技术B 中文乱码而已,c:\docume~1\admini~1\??,关键问题再“??”上,自己设定一下获得目录的编码格式就可以了! 参考技术C 呃,对,找不到路径,应该说是exe4j的BUG还是什么。你直接把*.bat文件放到D盘根目录再试试。 参考技术D 文件路径的问题,可能是空格引起!或者没打包进去!本回答被提问者采纳

普通 java 工程调用 arcobject 功能,打包成独立可运行程序后,用脚本调用

写在前面:

在实验 java 调用 ArcObject(下文简称AO),开发业务功能时,遇到了普通 java 工程可以正常运行,而在将工程改为 web 后台,放在 tomcat 中运行时,出现了错误,具体错误信息已在其他文章说明,在些不在赘述,开发功能是不可少的,既然出现了问题,就要解决问题,遂想到将开发的 AO 程序,打包可独立可运行 jar 包,以 cmd 的方式调用,不也能解决问题吗,于是开始测试,不想测试成功,在此记录,以备将来查询。

(注:打包的独立可运行的调用了 AO 接口 jar 包,不可被同时运行2个实例,具体原因未向 esri 技术支持咨询,是我实测发现的,有可能是我代码中调用 AO 的部分有问题,也可能是 AO 不支持多线程,谁知道呢)

1、开发环境

myeclipse 2014, ArcGIS 10.5,jdk 1.8 32位

开发的环境的安装配置,网上很多,就不啰嗦了。

 

2、AO代码的开发

我想读这篇文章的各位亲已经是 AO 开发的大牛、小牛了,有关 java 调用 AO SDK 开发,就不啰嗦了,在这里,我实验的是 AO 调用自定义 toolbox 模型,用到了 geoprocessor 等内容。

 

3、具体 cmd 脚本

在写 cmd 脚本前,假设 arcgis 安装路径是:C:\Program Files (x86)\ArcGIS;

开发好的 AO 程序打包好,放在一个目录下(也可不放,各位随心),在该目录下新建 callao.bat 文件,书写如下内容:

rem 设置当前 cmd 窗口编码为 utf-8,防止开发的AO程序中接收的参数中有中文,无法正确运行
chcp 65001
set AGSDESKTOPJAVA=C:\Program Files (x86)\ArcGIS\Desktop10.5set JAVA_HOME=C:\Program Files (x86)\Java\jdk1.8.0_144
set Path=%JAVA_HOME%\bin;%AGSDESKTOPJAVA%bin;%AGSDESKTOPJAVA%java\lib

java -jar callao.jar(此处为调用AO打包好的jar包绝对路径) param1(参数1) param2(参数2)    //说明:参数的个数根据各位亲调用 AO 代码具体情况来定

 

4、结尾

哈哈,亲们试试,能不能运行起来!

 

以上是关于运行exe4j打包好的java桌面应用程序后出现error.log日志错误的主要内容,如果未能解决你的问题,请参考以下文章

exe4j如何利用exe4j把java桌面程序生成exe文件

怎样java 打包成exe文件

exe4j 给jar打包exe文件

JAVA程序打包为EXE

使用exe4j打包Java程序

#yyds干货盘点# 使用 exe4j 将 jar 包生成 .exe 文件(敲详细)