2017-09-23 3 views
2

Quand j'essayer projet de paquet avec Maven, je reçois ceComment mieux mettre en place des propriétés de codage machine virtuelle Java en UTF-8

... 
------------------------------------------------------- 
    T E S T S 
------------------------------------------------------- 
... 

     2017-09-23 14:00:11.447 ERROR 11468 --- [   main] o.s.b.c.FileEncodingApplicationListener : System property 'file.encoding' is currently 'Cp1252'. It should be 'UTF-8' (as defined in 'spring.mandatoryFileEncoding'). 
     2017-09-23 14:00:11.464 ERROR 11468 --- [   main] o.s.b.c.FileEncodingApplicationListener : Environment variable LANG is 'null'. You could use a locale setting that matches encoding='UTF-8'. 
     2017-09-23 14:00:11.464 ERROR 11468 --- [   main] o.s.b.c.FileEncodingApplicationListener : Environment variable LC_ALL is 'null'. You could use a locale setting that matches encoding='UTF-8'. 
     2017-09-23 14:00:11.802 ERROR 11468 --- [   main] o.s.boot.SpringApplication    : Application startup failed 

     java.lang.IllegalStateException: The Java Virtual Machine has not been configured to use the desired default character encoding (UTF-8). 

Il peut être fixé comme: ajoutez Variable d'environnement JAVA_TOOL_OPTION = -Dfile.encoding="UTF-8" mais ne le font pas travaux.

Environment variable

Dans IntelliJ Idea Paramètres tout est réglé sur UTF-8.

aplication.properties

spring.mandatory-file-encoding=UTF-8 

pom.xml

<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
    <file.encoding>UTF-8</file.encoding> 
    <java.version>1.8</java.version> 
</properties> 

Utilisation de Windows 10.

+0

est l'une de ces propriétés utilisées dans 'maven-compilateur-plugin '? – nullpointer

+0

Non, ils ne sont pas utilisés par maven-compiler-plugin. 'java.version' est utilisé par spring-boot, mais seulement si vous utilisez le parent de démarrage de printemps. Sinon, cela ne fonctionne pas de cette façon ... – khmarbaise

Répondre

2

Nous c un codage du codage de source et le codage de sortie en fournissant des arguments d'exécution de commande comme suit:

mvn -Dproject.build.sourceEncoding=UTF-8 -Dproject.reporting.outputEncoding=UTF-8 clean deploy 

Ou par la ligne en ajoutant dans pom.xml:

<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <redis.version>1.3.5.RELEASE</redis.version> 
</properties> 
+0

La définition de l'encodage via la ligne de commande 'project.build.sourceEncoding' est déjà effectuée via les propriétés via la zone de propriétés dans le fichier pom ... pas besoin de le refaire en ligne de commande. Le plus important est de définir l'encodage des fichiers ... – khmarbaise

0

Pouvez-vous essayer de préciser comme un argument de ligne de commande, par exemple:

java -Dfile-encoding=UTF-8 -jar yourfile.jar