java - 当路径/名称包含 Unicode 字符时如何运行可执行 JAR?

标签 java unicode jar executable-jar

假设我有一个名为“ascąś©.jar”的可执行 JAR 文件。 当我尝试通过双击运行它时,java.exe 进程启动但随后立即结束。 当我尝试使用以下命令从 cmd.exe 运行它时:java -jar "ascąś©.jar" 它返回:

C:\>java -jar "ascąś©.jar"
Error: An unexpected error occurred while trying to open file asc??ę.

或者如果当前目录下没有这样的文件:

C:\>java -jar "ascąś©.jar"
Error: Unable to access jarfile asc╣ťę.jar

当目录名中有 Unicode 字符时,也会发生同样的事情。 当名称/路径不包含 Unicode 字符时,JAR 文件运行没有问题。

有人遇到同样的问题吗?我需要更改 Java 中的某些编码设置吗?我在哪里可以做到这一点?

我的配置:

Windows 7 Professional SP1 32-bit EN
Java version: 1.7.0_03

最佳答案

这似乎是一个 issue known for a long time : Java 启动器无法处理文件名中的 unicode 字符。

您不能只重命名 JAR 或临时将其复制到一个全 ASCII 名称的文件中吗?如果您真的坚持(或被迫)在 JAR 的文件名中使用 unicode 字符,您总是可以编写自己的知道如何处理它们的启动器——Eclipse 开发人员为他们的启动器做到了这一点。但这似乎过分了。

关于java - 当路径/名称包含 Unicode 字符时如何运行可执行 JAR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14998507/

相关文章:

java - Java 中的文件处理(带有 .dat 扩展名的二进制文件)返回未知编译时错误

管理页面上的 django unicode 错误

c++ - UTF-8、Unicode 以及机器如何解释字节?

javascript - 显示具有下标(或上标)样式的菜单项标签

eclipse - 使用最新的 Mockito 需要哪些 jar?

Java 连接到 Oracle Grid - DB 连接字符串

c# - 开发基于 TCP/IP 的消息客户端的建议

Java:找不到类:net.sf.cglib.proxy.MethodInterceptor

eclipse - JOGL 异常 - 在 java.library.path 中找不到胶合剂

C:读取二进制并写入编码文本