Java应用打包后运行需要注意编码问题_java

最近在做一个项目,项目总的来说就是和数据库打交道,取出数据来通过HTTP协议提交到一个接口上去。具体功能不多说了,只是讲这里面的一点——编码问题

项目当中,涉及到取所有数据的MD5值。

在Java项目中,个人喜欢将项目的默认编码改为UTF-8。使用的开发工具以Eclipse为主。然而,奇怪的问题出现了。当我在IDE中对项目进行调试的时候没有任何问题,但是打成了jar包后再通过

java -jar project.jar

运行的时候,每次提交数据,接口都会返回数据说我的签名不正确。换句话说就是我的最后一步,做MD5运算的时候出了问题。

为什么打了jar包就不行呢?几经波折,又是查看参数的hashCode,又是检查所有提交内容的十六进制数据,发现是文本编码出了问题。在Eclipse中是正确的,但是打出jar包后,启动命令行一直没设置字符串默认编码,因此java虚拟机就按照所在系统的默认编码运行了。我使用的是Windows环境,那么自然是GBK编码。

后来通过查阅资料,解决的办法就是加一个参数指定编码:

java -Dfile.encoding=utf-8 -jar project.jar

这样就可以了。工具正常运行了。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索Java应用打包
java打包jar 运行、java 打包运行、java 程序打包 运行、java 运行环境编码、java 运行指定编码,以便于您获取更多的相关知识。

时间: 2024-08-02 14:57:17

Java应用打包后运行需要注意编码问题_java的相关文章

含html文件的java程序打包后的问题

问题描述 含html文件的java程序打包后的问题 控件是EditorPane,显示内容为.htm文件,来源是word转换的htm文件,使用的方法是setpage():左边是编码调试阶段的情况,右边是打包后程序运行后的情况.请问为什么打包后出现的是htm的内部代码而不是外观?

可以在eclipse运行的程序打包后 使用一些功能就会报错

问题描述 入口函数在CommandLineRunner里面,其中调用了MyCheckUnreachableCode_tijiao的MyCheckUnreachableCode方法,来检查一些不可达代码,程序在eclipse中配置好参数运行正常.但是将源码打包后(打包工具用的这个开源项目自身写好的一个build.xml文件,直接用antbuild而成),如果不加参数会提示usge()的内容,但是一旦加了一个参数就会报:D:mycoderclosure-compilerbuild>java-jarc

在 java se 中使用mybatis 用fatjar打包后出现错误、

问题描述 在 java se 中使用mybatis 用fatjar打包后出现错误. 在开发环境可以顺利运行,用fatjar打包后出现错误, Exception in thread "main" java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.i

打包-使用eclipse打的apk包忽大忽小,安装后运行程序失败,什么原因?

问题描述 使用eclipse打的apk包忽大忽小,安装后运行程序失败,什么原因? 使用eclipse不混淆打的正式签名apk包忽大忽小,我的apk理论打包是5021K,但是每次打包都不一样,有时是4888K,有时是5006K,始终达不到正常的5021K,安装后运行程序,一闪而过,直接失败,什么原因? 解决方案 你运行失败得查看log. 解决方案二: 应该是eclipse的错误检测吧,好像是有的代码不符合规范.打开eclipse Preferences 选择 Android 下 Lint Erro

关于java打包后,读取不到配置文件的问题

问题描述 最近做了一个项目,打包后读取不到配置文件,在eclipse中运行正常.目录结构如下:|--ChangeLanguage |--ResourceManager|--i18n |--message_en_US.properties |--message_zh_CN.properties下面是主要代码:private static final String RESOURCE_NAME = "i18n.Message";private ResourceBundle bundle; p

java 有没有能运行一次后,删除自身的方法。为什么好多人说删除自身就是在写病毒...

问题描述 java 有没有能运行一次后,删除自身的方法.为什么好多人说删除自身就是在写病毒... 我希望做一个能自动获得服务器上新版本并自我更新的程序.当检测到有新版本就用 新版本替换自身.程序是个jar文件,目前的问题是,如何替换. 我能想到的方法:主程序名为a.jar,因为正在运行的程序不能被删除替换, 所以先将新版本下载,名为aTemp.jar,运行aTemp.jar.a.jar关闭自身,aTemp.jar删除 a.jar,复制aTemp.jar并名为a.jar.最后,删除自身.即aTem

eclipse打包好的java jar文件,运行时报错找不到依赖包。

问题描述 eclipse打包好的java jar文件,运行时报错找不到依赖包. eclipse调试没问题,打包成jar,cmd运行后报错找不到依赖包,我用了几个依赖包,放在桌面,eclipse都关联好了,运行正常,export出来的jar得classpath文件也描述了依赖包地址如下,不知道为什么就找不到依赖包.还有就是依赖包如何和项目捆绑一起啊,这个肯定要跟着程序一起走的.感谢大牛. 解决方案 把jar拷到项目文件夹下 解决方案二: 放进去之后clear一下然后再打包出来,实在不行你打包之后再

混合编程-为什么用matlab写的函数,在matlab下运行和用java调用后运行,结果会不一样

问题描述 为什么用matlab写的函数,在matlab下运行和用java调用后运行,结果会不一样 绘制出来的图像不一样.有涉及到sql server数据库读取,以及randn函数,以及plot函数.参数传递的是一样的. 解决方案 不懂,能够问问 java调用matlab函数具体操作过程是咋样的?网上找了一圈,不明所以-- 解决方案二: 就是在matlab中把.m文件封装成jar包,在java中用声明类,调用类函数的方式即可.详细步骤网上有好多介绍的. 解决方案三: 嗯,好的 谢谢 就是对操作不熟

没有任何提示信息-py2exe打包后的exe运行不了

问题描述 py2exe打包后的exe运行不了 各位前辈们,小弟是python新手,刚用了不到两个月,希望前辈们多多指教.想问一下有没有谁遇到过我这样的问题:python开发的程序,在python开发环境(eclipse上装python插件,点击Run)上能够正常运行,打包后生成了全部的文件(包括:exe文件,zip文件,还有一个w9xpopen.exe),也上网找了不少资料,类似跟msvcr90.dll相关的文章:http://hi.baidu.com/yangyingchao/item/2a6