Brak polskich znaków w IDE

0

Mam problem podczas kompilacji przykładów z heliona. Visual Studio Code ma jakiś problem z kodowaniem polskich znaków w kodach źródłowych Javy pobranych z helionu. Zmieniam utf-8 na kodowanie cp1250 kod źródłowy już zamienia na polskie znaki, ale podczas kompilacji wychodzą krzaki.
https://helion.pl/ksiazki/java-przewodnik-dla-poczatkujacych-wydanie-viii-herbert-schildt,javpp8.htm#format/d

0

podczas kompilacji wychodzą krzaki

Wątpie, bo niby i gdzie? Może podczas URUCHOMIENIA programu konsola w której wyświetlasz wyniki ma inne kodowanie?

0

Czy VSC jest najlepiej dobranych IDE, gdy mowa o Javie? ...

Warto polecić Apache Netbeans, albo Jetbrains Idea darmowe wydanie.
Pierwszy będzie MSZ lepszy np dla początkującego

0

Sorki że pisze z drugiego nicka, ale już nie mogłem się zalogować na to samo hasło. Ktoś mi hasło podmienił, zablokował czy jak? Korzystam z rozszerzenia code runner i tak wygląda uruchamianie w nim pliku Java

"java": "cd $dir && /home/user/Java/openjdk-17-ea+8_linux-x64_bin/jdk-17/bin/javac $fileName && /home/user/Java/openjdk-17-ea+8_linux-x64_bin/jdk-17/bin/java $fileNameWithoutExt",

Korzystam z tej wbudowanej konsoli w VSC. Nie chcę zmieniać IDE na inny.

@AntyKtokolwiek czytałem podobny wątek tu na forum i Intellij ma ten sam problem z tymi przykładami z helionu. Nie wiem dlaczego helion dodaje takie przykłady z niepoprawnym kodowaniem. Może ma na to wpływ IDE twórcy tych przykładów? On korzysta z NetBeans, a my próbujemy je uruchomić na Intellij i Visual Studio Code? W Intellij trzeba zmienić każdy plik z krzakami z utf-8 na 1250 i przekonwertować. Dopiero wtedy wyświetla się poprawnie bez krzaków.

0

Ktoś w Helion wystawił archiwum

java-przewodnik-dla-poczatkujacych-wydanie-viii-herbert-schildt

które się rozpakowuje do folderu

Java. Przewodnik dla pocz•tkuj•cych

Dobry jest, bo ja bez bez szukania na StackOverflow nie wiedziałbym jak w terminalu wpisać takie grube kropki.

Natomiast sam kod i jednak IntelliJ nie ma z tym "problemu"

r01, plik Example3.java

ani też w terminalu Ubuntu nie ma "problemu"

helion $ vi Example3.java
helion $ javac Example3.java 
helion $ javac --version
javac 11.0.10
helion $ java Example3 
Początkowa wartość zmiennej var: 10
Początkowa wartość zmiennej x: 10.0

var po dzieleniu: 2
x po dzieleniu: 2.5
helion $ 

0

Sprawdziłeś tylko pierwszy katalog r01 tu mi wszystko uruchamia się poprawnie, zobacz w innych dłuższych przykładach z r03.

// U�ywa break w zagnie�d�onych p�tlach
class Break3 {  
  public static void main(String args[]) {  
  
    for(int i=0; i<3; i++) {  
      System.out.println("Licznik zewn�trznej p�tli: " + i);  
      System.out.print("    Licznik wewn�trznej p�tli: "); 
 
      int t = 0;             
      while(t < 100) {  
        if(t == 10) break; // Przerywa p�tl� gdy t jest r�wne 10  
        System.out.print(t + " ");  
        t++; 
      }  
      System.out.println();  
    }  
    System.out.println("P�tle zako�czone.");  
  }  
}
}
0
helion $ vi Break3.java
helion $ javac Break3.java 
helion $ java Break3 
Licznik zewnętrznej pętli: 0
    Licznik wewnętrznej pętli: 0 1 2 3 4 5 6 7 8 9 
Licznik zewnętrznej pętli: 1
    Licznik wewnętrznej pętli: 0 1 2 3 4 5 6 7 8 9 
Licznik zewnętrznej pętli: 2
    Licznik wewnętrznej pętli: 0 1 2 3 4 5 6 7 8 9 
Pętle zakończone.
helion $ cat /etc/os-release 
NAME="Ubuntu"

IntelliJ (aktualna wersja 2020.3)
screenshot-20210214182230.png

Font Menlo https://www.cufonfonts.com/font/menlo

0

Może to być problem z openjdk 17? Teraz pobieram 16 z tej strony.
https://jdk.java.net/16/

@BraVolt a będziesz tak miły i zainstalujesz VSC? Sprawdzisz czy u ciebie pod Ubuntu wyświetla poprawnie?

0

To samo na Javie 16.

Break3.java:1: error: unmappable character (0xBF) for encoding UTF-8
// U�ywa break w zagnie�d�onych p�tlach
    ^
Break3.java:1: error: unmappable character (0xBF) for encoding UTF-8
// U�ywa break w zagnie�d�onych p�tlach
                       ^
Break3.java:1: error: unmappable character (0xBF) for encoding UTF-8
// U�ywa break w zagnie�d�onych p�tlach
                         ^
Break3.java:1: error: unmappable character (0xEA) for encoding UTF-8
// U�ywa break w zagnie�d�onych p�tlach
                                 ^
Break3.java:6: error: unmappable character (0xEA) for encoding UTF-8
      System.out.println("Licznik zewn�trznej p�tli: " + i);  
                                      ^
Break3.java:6: error: unmappable character (0xEA) for encoding UTF-8
      System.out.println("Licznik zewn�trznej p�tli: " + i);  
                                               ^
Break3.java:7: error: unmappable character (0xEA) for encoding UTF-8
      System.out.print("    Licznik wewn�trznej p�tli: "); 
                                        ^
Break3.java:7: error: unmappable character (0xEA) for encoding UTF-8
      System.out.print("    Licznik wewn�trznej p�tli: "); 
                                                 ^
Break3.java:11: error: unmappable character (0xEA) for encoding UTF-8
        if(t == 10) break; // Przerywa p�tl� gdy t jest r�wne 10  
                                        ^
Break3.java:11: error: unmappable character (0xEA) for encoding UTF-8
        if(t == 10) break; // Przerywa p�tl� gdy t jest r�wne 10  
                                           ^
Break3.java:11: error: unmappable character (0xF3) for encoding UTF-8
        if(t == 10) break; // Przerywa p�tl� gdy t jest r�wne 10  
                                                         ^
Break3.java:17: error: unmappable character (0xEA) for encoding UTF-8
    System.out.println("P�tle zako�czone.");  
                         ^
Break3.java:17: error: unmappable character (0xF1) for encoding UTF-8
    System.out.println("P�tle zako�czone.");  
                                  ^
13 errors

Do drugiego katalogu r02 wszystko się poprawnie kompilowało i wyświetlało w konsoli. Więc wtyczka code runner i ścieżki w niej są dobrze ustawione. Problem się pojawił dopiero w katalogu r03, gdy kod źródłowy zawiera te znaki zapytania.
To co podpowiadają na stackoverflow też mi nie pomogło.
https://stackoverflow.com/questions/38528384/how-to-setup-visual-studio-code-to-detect-and-set-the-correct-encoding-on-file-o

0

@zenoo2:
Nie używaj javy, która nie jest zakorzeniona na rynku.
Nawet jeśli sama w sobie przechodzi testy, w połączeniu z większymi zewnętrznymi bibliotekami efekt jest trudny do określenia.

LTS jest 11, względnie najnowsza względnie zaakaptowana 15.

0

Java 17 Early Access

docker pull openjdk:17-slim
docker run -it --rm openjdk:17-slim bash
root@e1932095c31d:/home# javac --version
javac 17-ea
java --version
openjdk 17-ea 2021-09-14
OpenJDK Runtime Environment (build 17-ea+9-653)
OpenJDK 64-Bit Server VM (build 17-ea+9-653, mixed mode, sharing)
mkdir -p /home/helion
cd /home/helion
apt-get update
apt-get install -y vim
vi Break3.java
javac Break3.java
root@e1932095c31d:/home/helion# java Break3
Licznik zewnętrznej pętli: 0
    Licznik wewnętrznej pętli: 0 1 2 3 4 5 6 7 8 9 
Licznik zewnętrznej pętli: 1
    Licznik wewnętrznej pętli: 0 1 2 3 4 5 6 7 8 9 
Licznik zewnętrznej pętli: 2
    Licznik wewnętrznej pętli: 0 1 2 3 4 5 6 7 8 9 
Pętle zakończone.
cat /etc/os-release 
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
whereis java
java: /usr/local/openjdk-17/bin/java

1 użytkowników online, w tym zalogowanych: 0, gości: 1