警告:无法更改每个人的权限:

qui*_*ify 28 java google-drive-api

在NetBeans中运行https://developers.google.com/drive/web/quickstart/java?hl=hu上的Java快速入门示例时,我收到错误代码:

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
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

编辑:这是完整的错误消息.

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
Run Code Online (Sandbox Code Playgroud)

C D*_*pak 31

有同样的问题和浪费时间才意识到"无法更改所有者的权限:C:\ Users\Quibbles.credentials\drive-api-quickstart"
只是一个警告.

真正的问题是这里的空指针.

InputStream in =
            DriveQuickstart.class.getResourceAsStream("/client_secret.json");
Run Code Online (Sandbox Code Playgroud)

这条线是我的问题."in"为null,因此为空指针.

InputStream in    = new FileInputStream("<Full Path>\\client_secret.json");  
Run Code Online (Sandbox Code Playgroud)

这解决了我的问题.


Jus*_*Dev 15

实际问题是Google的setPermissionsToOwnerOnly API代码中的错误

编写的代码仅适用于基于Linux/Unix的系统,而不适用于基于Windows ACL的系统.

您可以忽略该警告或编写自己的DataStore类,以便为Windows正确设置权限.

我也会尝试在谷歌上提交一个bug.

  • 要禁用由Google库代码错误导致的警告消息,请使用:final java.util.logging.Logger buggyLogger = java.util.logging.Logger.getLogger(FileDataStoreFactory.class.getName()); buggyLogger.setLevel(java.util.logging.Level.SEVERE); (7认同)
  • 来源问题出在Google拥有的GitHub回购中.自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 (2认同)
  • 我已向Google提交了错误问题报告:https://github.com/google/google-http-java-client/issues/315 (2认同)

小智 5

我在Eclipse中面临着同样的问题。这是一个解决方案:

  1. 在管理员模式下运行Eclipse

  2. 清除目录 C:/Users/<username>.credentials/calendar-java-quickstart.json

  3. 将.json文件复制到bin目录,例如 bin/main/resources/client_secret.json

您现在可以自由运行。


小智 0

我刚刚在https://developers.google.com/google-apps/calendar/quickstart/java示例中遇到了同样的问题。我怀疑问题在于您在 Windows 中运行它,并且运行它的 JVM 没有更改 Windows 中文件权限的管理员权限。

请参阅在 Windows 上以管理员身份运行 Java 应用程序