2015-06-04 4 views
22

При запуске образца QUICKSTART Java в https://developers.google.com/drive/web/quickstart/java?hl=hu в NetBeans, я получаю код ошибки:ВНИМАНИЕ: не удалось изменить разрешения для всех:

Jun 04, 2015 12:12:11 AM com.google.api.client.util.store.FileDataStoreFactory setPermissionsToOwnerOnly 
WARNING: unable to change permissions for everybody: 
C:\Users\Quibbles\credentials\drive-api-quickstart 

Что я делаю не так?

Редактировать: Это сообщение об ошибке.

Jun 04, 2015 5:11:39 PM com.google.api.client.util.store.FileDataStoreFactory setPermissionsToOwnerOnly 
WARNING: unable to change permissions for owner: C:\Users\Quibbles\.credentials\drive-api-quickstart 
Exception in thread "main" java.lang.NullPointerException 
    at java.io.Reader.<init>(Reader.java:78) 
    at java.io.InputStreamReader.<init>(InputStreamReader.java:72) 
    at DriveQuickstart.authorize(DriveQuickstart.java:64) 
    at DriveQuickstart.getDriveService(DriveQuickstart.java:87) 
    at DriveQuickstart.main(DriveQuickstart.java:96) 
Java Result: 1 
+0

Пожалуйста, сообщите полное предупреждение. – KRR

+0

Возможно, ваш сервис уже запущен. Убейте старый экземпляр, чем он должен снова работать. – KRR

+1

@KRR Я обновил сообщение, чтобы включить другие сообщения об ошибках, которые я получаю. Это происходит без обслуживания уже запущенного. – quibblify

ответ

0

Я просто побежал в том же номере с https://developers.google.com/google-apps/calendar/quickstart/java например. Я подозреваю, что проблема в том, что вы запускаете его в Windows, а JVM, в котором вы работаете, не имеет прав Adminsitrator для изменения прав доступа к файлам в Windows.

См Run Java application as administrator on Windows

0

Если бы та же проблема при работе примера, приведенного в учебнике «https://developers.google.com/drive/v2/web/quickstart/java». Следуя инструкции, как указано в учебнике, но продолжал получать это исключение. В конце концов, удалось отсортировать его, переместив «client_secret.json» в папку «\ build \ classes \ main \ classes». Кроме того, перед созданием проекта с помощью «gradle -q run» в первый раз удалите все файлы в папке «C: \ Users \ userName \ .credentials».

26

Если бы тот же вопрос, и впустую часов, прежде чем понял, что «не может изменить права доступа для владельца: C: \ Users \ Quibbles.credentials \ диск-Апи-быстрый старт»
просто предупреждение.

Настоящая проблема - нулевой указатель здесь.

InputStream in = 
      DriveQuickstart.class.getResourceAsStream("/client_secret.json"); 

Эта строка была в моем случае. «in» имеет значение null и, следовательно, нулевой указатель.

InputStream in = new FileInputStream("<Full Path>\\client_secret.json"); 

Это разрешило мою проблему.

+1

Имела ту же проблему в «google-api-java-client-samples-master». Здесь вы должны сделать 'InputStreamReader in = new InputStreamReader (новый FileInputStream (" \\ client_secrets.json "));' Потому что 'GoogleClientSecrets.load' только не принимает' InputStream'. –

10

актуальная проблема является ошибка в коде API Google для setPermissionsToOwnerOnly

код был написан для работы только на системах на базе Linux/Unix и не системах на базе Windows, ACL.

Вы можете игнорировать предупреждение или написать собственный класс DataStore, который правильно устанавливает разрешения для Windows.

Я собираюсь попытаться найти ошибку с Google.

+2

Исходная проблема заключается в этом репо GitHub, принадлежащем Google. Код не обновлялся с 2013 года. Https://github.com/google/google-http-java-client/blob/dev/google-http-client/src/main/java/com/google/api/client /util/store/FileDataStoreFactory.java – JustADev

+2

Я отправил сообщение об ошибке в Google: https://github.com/google/google-http-java-client/issues/315 – JustADev

+3

Чтобы отключить сообщение WARNING, вызванное Ошибка использования кода библиотеки Google: \t \t \t final java.util.logging.Logger buggyLogger = java.util.logging.Logger.getLogger (FileDataStoreFactory.class.getName()); \t \t \t buggyLogger.setLevel (java.util.logging.Level.SEVERE); – JustADev

3

Я столкнулся с той же проблемой в Eclipse. Вот решение:

  1. Запуск затмение в режиме администратора

  2. Устраните каталог C:/Users/<username>.credentials/calendar-java-quickstart.json

  3. Скопируйте файл .json каталог BIN, например, bin/main/resources/client_secret.json

Теперь вы можете бежать.

Смежные вопросы