Задать вопрос
Itmoing100
@Itmoing100
engineer

Как бороться с source not found в эклипс?

Здравствуйте. Сейчас решил начать учить java. У меня вин 8.1 64 бит. Установлен JDK 1.8 SE 64 бит и Eclipse neon.3 for Java EE 64 бит. Все возможные пути в переменных средах прописаны.

Когда я выполняю учебный пример, например, программу, которая представляет собой вариацию программы text-to-speech на Java.

`Main` class:

package com.example.TTS; // package of class Main
    
    import com.example.TTS.GoogleTextToSpeech; // import class GoogleTextToSpeech
    
    public class Main {
      
      public static void main(String[] args) {
        GoogleTextToSpeech gtts = new GoogleTextToSpeech(); // make instance gtts
        gtts.say("Hello dear friends", "en"); // use method say
    //  gtts.say("Bonjour mon amis!", "fr");
      }
    }


`GoogleTextToSpeech` class:

package com.example.TTS; // package of class GoogleTextToSpeech
    
    import java.io.InputStream; // import  classes from Java library
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.net.URLConnection;
    import java.net.URLEncoder;
    import javazoom.jl.player.Player; // import class from jl1.0.1.jar
    
    public class GoogleTextToSpeech {
      private static String ENCODING = "UTF-8"; //make constants and assign values to them
      private static String URL_BEGINNING = "http://translate.google.com/translate_tts?ie=";
      private static String URL_QUERY = "&q=";
      private static String URL_TL = "&tl=";
      private static String USER_AGENT_LITERAL = "User-Agent";
      private static String USER_AGENT = "Mozilla/4.7";
    
      public void say( String phrase, String lang ) {
        
        try {
          //Make full URL
          phrase=URLEncoder.encode(phrase, ENCODING); //assign value to variable with name 'phrase' by use method encode from class URLEncoder 
          String sURL = URL_BEGINNING + ENCODING + URL_TL + lang + URL_QUERY + phrase; //assign value to variable sURL 
              URL url = new URL(sURL); // make instance url with constructor
              
              //Create connection
              URLConnection urlConn = url.openConnection(); //assign value to variable urlConn 
              HttpURLConnection httpUrlConn = (HttpURLConnection) urlConn; //Declaring a httpUrlConn variable of type HttpURLConnection and assigning it a value to some variable urlConn (which is previously reduce to  HttpURLConnection)
              httpUrlConn.addRequestProperty(USER_AGENT_LITERAL, USER_AGENT);// use method 
              
              //Create stream
              InputStream mp3WebStream = urlConn.getInputStream();//create instance and assign it a value
              
              //Play stream
              Player plr = new Player(mp3WebStream); //create instance plr with constructor
              plr.play(); //use method
        }
          //use exception with name ex
          catch (Exception ex) { 
          ex.printStackTrace(); //use method
        }
      }
    }

И имею следующий вывод ( в эклипс консоли):

java.io.IOException: Server returned HTTP response code: 503 for URL: http://ipv4.google.com/sorry/index?continue=http://translate.google.com/translate_tts%3Fie%3DUTF-8%26tl%3Den%26q%3DHello%2Bdear%2Bfriends&q=EgRbegWvGJ3FldEFIhkA8aeDS952qU94sbK8DAgP55pH8cbMicZdMgFy
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1894)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492)
	at com.example.TTS.GoogleTextToSpeech.say(GoogleTextToSpeech.java:32)
	at com.example.TTS.Main.main(Main.java:9)


Когда я щелкаю на HttpURLConnection.java:1492
то получаю результат:

5a298910d9f4e879443990.png

или когда щелкаю на HttpURLConnection.java:1894
то получаю аналогичный результат: JRE4png.png

И в обоих случаях он пишет:
public class sun.net.www.protocol.http.HttpURLConnection extends java.net.HttpURLConnection
те имеет ввиду какой-то другой класс от SUN (откуда он мог у меня появится?).

Хотя если щелкаешь мышкой+ctrl на любом классе в main.java или в GoogleTextToSpeech.java (в том числе на классе HttpURLConnection )

5a2c5a215becb955842999.png

эклипс открывает исходники этих классов в новой вкладке, только почему-то вкладки называются,например, HttpURLConnection.class, а не HttpURLConnection.java

5a2c5adfd49ba633542850.png

То есть eclipse почему-то не может открывать некоторые классы. Как это исправить?

Как мне увидеть исходники этих классов? То есть где-то что-то надо прописать?
  • Вопрос задан
  • 746 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Merion Academy
    Администрирование MS Windows Server
    1 месяц
    Далее
  • Нетология
    Инженер по автоматизации
    13 месяцев
    Далее
  • Skillbox
    Системный администратор с нуля
    6 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
Не надо нигде ничего прописывать, зачем тебе вообще понадобились исходники этих классов? В ошибке же написано Server returned HTTP response code: 503 for URL. Разберись, что с сервером, почему он так отвечает и будет тебе счастье. Лезть для этого в кишки сан классов не нужно, тем более, что сейчас ты там ничего не поймёшь.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Монетка Екатеринбург
от 130 000 до 160 000 ₽
Гринатом Петрозаводск
До 80 000 ₽
Алабуга Екатеринбург
от 127 500 ₽