Gradle Terminal/Console Encoder

belshop1

Mitglied
Hallo grüßt euch.

Aktuell bin ich an einem Projekt dran, welches mir im Terminal einen Text zurückgibt. In diesem Text sind Umlaute enthalten wie zB. ä-ö-ü. Leider gibt mir die Konsole nur Zeichen wie: "����" oder "????" zurück. Ich benutze Gradle version 7.5.1 und das Plugin "application" zum ausführen. Ich habe das ganze auch schon mit

Java:
task runWithJavaExec(type: JavaExec) {
    group = "Execution"
    description = "Run the main class with JavaExecTask"
    classpath = sourceSets.main.runtimeClasspath
    main = "Tester.Main"


versucht. Leider zeigt er mir immer nur die Zeichen an. Der folgende Code in: gradle.propertiers funktioniert auch nicht.

Code:
org.gradle.jvmargs='-Dfile.encoding=UTF-8'



Ich dachte erst das wäre ein Encoder Fehler von der IDE. Aber wenn ich eine andere Klasse ohne Gradle ausführe zeigt er mir die Umlaute an. Ich hab das mit Visual Studio Code und Eclipse versucht. Auch neu erstelle Projekte wollen mir einfach die Umlaute nicht anzeigen. Ich denke das ist ein Encoder Fehler von Gradle? Falls jemand mehr dazu weiß, gerne antworten. Ich finde leider nichts dazu, weder hier noch bei google(oder ich such einfach falsch^^) Ich bin um jeden Tipp froh!

MFG
 

belshop1

Mitglied
Okay. Ich hab das mal ausprobiert und leider bekomme ich nur Fehler.


Java:
Could not get unknown property 'Compile' for project ':lib' of type org.gradle.api.Project.


Mit:

Code:
tasks.withType(Javacompile) {
    options.encoding = 'UTF-8'
}

bekomme ich zwar keine Fehlermeldungen mehr. Es funktioniert aber auch nicht ^^.
 

KonradN

Super-Moderator
Mitarbeiter
Es ist immer sinnvoll die gradle Dateien komplett zu zeigen um zu sehen, was Du genau gemacht hast.

Bei den Source Dateien bist Du Dir auch sicher, dass diese im UTF-8 Format codiert sind?

Ggf. ist es hilfreich ein kleines, minimales Beispielprojekt zu bauen und dann als ZIP bereit zu stellen, damit man es auch reproduzieren kann. Das vereinfacht die Lösungsfindung dann auch.
 

belshop1

Mitglied
Wenn ich ganz ehrlich bin, bin ich mir nicht sicher. Ich lasse mir in dem Testprojekt einfach nur ein einfaches äöü über ein println ausgeben.

mein build.gradle sieht so aus:

Java:
/*
 * This file was generated by the Gradle 'init' task.
 *
 * This generated file contains a sample Java library project to get you started.
 * For more details take a look at the 'Building Java & JVM projects' chapter in the Gradle
 * User Manual available at https://docs.gradle.org/7.4.2/userguide/building_java_projects.html
 */

plugins {
    // Apply the java-library plugin for API and implementation separation.
    id 'java-library'
    id 'application'
}

repositories {
    // Use Maven Central for resolving dependencies.
    mavenCentral()
}

dependencies {
    // Use JUnit Jupiter for testing.
    testImplementation 'org.junit.jupiter:junit-jupiter:5.8.1'

    // This dependency is exported to consumers, that is to say found on their compile classpath.
    api 'org.apache.commons:commons-math3:3.6.1'

    // This dependency is used internally, and not exposed to consumers on their own compile classpath.
    implementation 'com.google.guava:guava:30.1.1-jre'
}

tasks.named('test') {
    // Use JUnit Platform for unit tests.
    useJUnitPlatform()
}

application {
    mainClass = 'TestProjekt.Main'
}

compileJava.options.encoding = 'UTF-8'
 

KonradN

Super-Moderator
Mitarbeiter
Ich selbst mache mit gradle sehr wenig, aber du solltest noch folgende Dinge ausprobieren:

a) Was ich so gesehen habe, war immer so ein tasks.withTypes zusammen mit dem
compileJava.options.encoding = 'UTF-8'
Das sehe ich also immer irgendwie beides zusammen.

b) folgendes kann ggf. auch noch helfen:
org.gradle.jvmargs='-Dfile.encoding=UTF-8'

Wichtig ist halt auch, das Encoding der Dateien zu prüfen. Notepad++ zeigt das recht schön an unter Windows. Aber IntelliJ kann das auch (wenn auch etwas umständlicher)

Welches Betriebssystem und welche Java Version nutzt Du? Ich würde jetzt vermuten, dass Du Windows nutzt (die meisten anderen Plattformen sind schon einige Zeit komplett hin zu UTF-8 gewechselt als default Encoding. Bei Java 19 passiert das aber wohl erst bei Windows).

Was damit nichts zu tun haben sollte: Plugin hast du id 'java-library' und nicht 'java'? Aber wenn du damit etwas bauen konntest, das Du ausführen konntest, dann ist das auf jeden Fall ok.

Ich lasse mir in dem Testprojekt einfach nur ein einfaches äöü über ein println ausgeben.
Ok, also wirklich das äöü im .java File in einem String Literal. Dann dürfte es nur am Encoding der java Datei und/oder dem verwendeten Encoding beim Aufruf des java compilers liegen.
 

belshop1

Mitglied
Ich nutze Windows und Java18.0.2.1

'java-library' wurde selbst bei der Projekterstellung generiert.

Ich habe mal in der build.gradle das encoding auf utf16 gestellt und habe folgende Fehler bekommen:

Java:
/*
 
> :lib:compileJava
��C:\Path..\TestProjekt\lib\src\main\java\TestProjekt\Library.java:1: error: unmappable character (0x0A) for encoding UTF-16
/*
 * This Java source file was generated by the Gradle 'init' task.
 */
package TestProjekt;

public class Library {
    public boolean someLibraryMethod() {
        return true;
    }
}��
                                                                                              ^
C:\Path...\TestProjekt\lib\src\main\java\TestProjekt\Library.java:1: error: illegal character: '\u2f2a'
⼪ਠ⨠周楳⁊慶愠獯畲捥⁦楬攠睡猠来湥牡瑥搠批⁴桥⁇牡摬攠❩湩琧⁴慳欮ਠ⨯ੰ慣歡来⁔敳瑐牯橥歴㬍ਊ灵扬楣⁣污獳⁌楢牡特⁻ਠ†⁰畢汩挠扯潬敡渠獯浥䱩扲慲祍整桯搨⤠笊††††牥瑵牮⁴牵攻ਠ†⁽੽�

Also kann ich den Compiler ausschließen. Denn das funktioniert ja.. (bzw. das Encoding des Compilers..)
 

KonradN

Super-Moderator
Mitarbeiter
Ok, dann wirklich einmal des Encoding prüfen. Hast Du Notepad++? Damit die Datei öffnen und dann kannst Du das Encoding sehen:
Im Menü unter Codierung schauen, auf was es da steht. Ich würde da Windows-1252, ISO 8859-15 oder ANSI vermuten. Sollte das der Fall sein, dann kannst Du es über Codierung -> Konvertiere zu UTF-8 umwandeln.
 

belshop1

Mitglied
Ich habe mir nun IntelliJ installiert und von dort aus ein Gradle Projekt erstellt. Damit funktioniert alles einwandfrei. Ich weiß nicht genau warum das mit Eclipse erstellte Projekt diese Fehler gemacht hat..
Thread kann also geschlossen werden.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Gradle startet SpringBoot-Anwendung nicht (Build aber successfull) Tools - Maven, Gradle, Ant & mehr 1
8u3631984 In Gitlab Pipleline Dokcer Image pushen mit gradle bootBuildImage Tools - Maven, Gradle, Ant & mehr 0
N No Main Manifest Attribute trotz Eintrag bei Gradle Tools - Maven, Gradle, Ant & mehr 1
8u3631984 Gradle und NPM wie strukturieren Tools - Maven, Gradle, Ant & mehr 3
S Gradle kann Lottie Implementation nicht finden Tools - Maven, Gradle, Ant & mehr 5
Gradle build funktioniert nicht Tools - Maven, Gradle, Ant & mehr 10
Moman2022 Hauptklasse kann nicht gefunden werden gradle build Tools - Maven, Gradle, Ant & mehr 3
8u3631984 Gradle nicht benötigte Dependencies finden Tools - Maven, Gradle, Ant & mehr 3
S "Wer" löscht JARs aus meinem Gradle-cache? Tools - Maven, Gradle, Ant & mehr 3
von Spotz Gradle: Warum wird das Plugin nicht geladen? Tools - Maven, Gradle, Ant & mehr 4
8u3631984 Verschachteltes Gradle Projekt Tools - Maven, Gradle, Ant & mehr 0
von Spotz Gradle: Dependencies und Plugins vom root Projekt für die child-Projekte verfügbar machen Tools - Maven, Gradle, Ant & mehr 5
J Gradle signing Plugin Tools - Maven, Gradle, Ant & mehr 0
Y Gradle finished with non-zero exit value 1 mit Gradle Tools - Maven, Gradle, Ant & mehr 1
L Gradle Ein lokales Eclipse Projekt in Gradle dependency einbinden Tools - Maven, Gradle, Ant & mehr 2
8u3631984 Gradle : Baue anderes Modul und packe es in einen Docker Container Tools - Maven, Gradle, Ant & mehr 0
M Was ist besser für den Anfang, Maven oder Gradle? Tools - Maven, Gradle, Ant & mehr 6
P Gradle Dependencies in Module vererben Tools - Maven, Gradle, Ant & mehr 2
J [Gradle] Task Reihenfolge pusblishMaven vor codenarcTest Tools - Maven, Gradle, Ant & mehr 0
J netbeans - jasperreports - gradle - klappt nicht Tools - Maven, Gradle, Ant & mehr 0
sascha-sphw Maven vs Gradle Tools - Maven, Gradle, Ant & mehr 24
L Gradle src-gen zum Classpath hinzufügen Tools - Maven, Gradle, Ant & mehr 0
N Gradle Tools - Maven, Gradle, Ant & mehr 4
W Gradle in Netbeans ... wie? Tools - Maven, Gradle, Ant & mehr 28
N Gradle für Tests 2 Frameworks Tools - Maven, Gradle, Ant & mehr 2
E Gradle Build Tools - Maven, Gradle, Ant & mehr 1
C Gradle create project within application Tools - Maven, Gradle, Ant & mehr 0
Tom299 (Gradle) Wie die JAR eines 2. Projektes "includieren" Tools - Maven, Gradle, Ant & mehr 1
Psypsy Multi-Projekt mit Gradle Tools - Maven, Gradle, Ant & mehr 1
Kr0e Best practices / Gradle und co Tools - Maven, Gradle, Ant & mehr 7
S Applet von Terminal Tools - Maven, Gradle, Ant & mehr 8
S Java Ant per Console starten Tools - Maven, Gradle, Ant & mehr 3

Ähnliche Java Themen


Oben