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

Java 警告:无法更改每个人的权限:,java,google-drive-api,Java,Google Drive Api,在NetBeans中运行Java quickstart示例时,我收到错误代码: 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

在NetBeans中运行Java quickstart示例时,我收到错误代码:

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
2015年6月4日下午5:11:39 com.google.api.client.util.store.FileDataStoreFactory setpermissions远程
警告:无法更改所有者的权限:C:\Users\Quibles\.credentials\drive api quickstart
线程“main”java.lang.NullPointerException中出现异常
在java.io.Reader上。(Reader.java:78)
位于java.io.InputStreamReader。(InputStreamReader.java:72)
在DriveQuickstart.authorize(DriveQuickstart.java:64)
在DriveQuickstart.getDriveService(DriveQuickstart.java:87)
位于DriveQuickstart.main(DriveQuickstart.java:96)
Java结果:1

我刚刚遇到了与示例相同的问题。我怀疑问题在于您正在Windows中运行它,而您正在运行它的JVM没有管理员权限来更改Windows中的文件权限


参见

我刚刚遇到了与示例相同的问题。我怀疑问题在于您正在Windows中运行它,而您正在运行它的JVM没有管理员权限来更改Windows中的文件权限


请参见

在运行教程“”中给出的示例时遇到相同的问题。按照教程中给出的说明同上,但一直获得此权限异常。最终,通过将“client\u secret.json”移动到“\build\classes\main\classes”文件夹,解决了这个问题。此外,在首次使用“gradle-q run”构建项目之前,请删除“C:\Users\userName\.credentials”文件夹中的所有文件

在运行教程“”中给出的示例时遇到相同的问题。按照教程中给出的说明同上,但一直获得此权限异常。最终,通过将“client\u secret.json”移动到“\build\classes\main\classes”文件夹,解决了这个问题。此外,在首次使用“gradle-q run”构建项目之前,请删除“C:\Users\userName\.credentials”文件夹中的所有文件

在意识到“无法更改所有者的权限:C:\Users\Quibbles.credentials\drive api quickstart”之前,出现了相同的问题并浪费了数小时时间
这只是一个警告

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

InputStream in =
            DriveQuickstart.class.getResourceAsStream("/client_secret.json");
这句话是我的问题。“in”为null,因此为null指针

InputStream in    = new FileInputStream("<Full Path>\\client_secret.json");  
InputStream in=newfileinputstream(“\\client\u secret.json”);

这就解决了我的问题。

在意识到“无法更改所有者的权限:C:\Users\Quibbles.credentials\drive api quickstart”之前,也遇到了同样的问题并浪费了数小时时间
这只是一个警告

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

InputStream in =
            DriveQuickstart.class.getResourceAsStream("/client_secret.json");
这句话是我的问题。“in”为null,因此为null指针

InputStream in    = new FileInputStream("<Full Path>\\client_secret.json");  
InputStream in=newfileinputstream(“\\client\u secret.json”);

这解决了我的问题。

实际的问题是Google的SetPermissions API代码中有一个错误

该代码仅适用于基于Linux/Unix的系统,而不是基于Windows ACL的系统

您可以忽略警告,也可以编写自己的数据存储类来正确设置Windows的权限


我也将尝试向谷歌提交一个bug。

实际问题是谷歌setPermissionsTownerly的API代码中有一个bug

该代码仅适用于基于Linux/Unix的系统,而不是基于Windows ACL的系统

您可以忽略警告,也可以编写自己的数据存储类来正确设置Windows的权限


我也将尝试向谷歌提交一个bug。

我在Eclipse中也遇到了同样的问题。这里有一个解决方案:

  • 在管理模式下运行eclipse

  • 清除目录
    C:/Users/.credentials/calendar java quickstart.json

  • 将.json文件复制到bin目录,例如
    bin/main/resources/client\u secret.json


  • 您现在可以自由运行了。

    我在Eclipse中也遇到了同样的问题。这里有一个解决方案:

  • 在管理模式下运行eclipse

  • 清除目录
    C:/Users/.credentials/calendar java quickstart.json

  • 将.json文件复制到bin目录,例如
    bin/main/resources/client\u secret.json


  • 您现在可以自由运行了。

    只需确保client_secret.json位于main/resources/directory下即可


    只需确保client_secret.json位于main/resources/目录下


    基本上,如果您已经在启用了de Drive API并创建了credentials.json文件,那么现在您需要:

    1-删除上次执行时生成的令牌目录。此目录中包含一个文件StoredCredential。 2-将de范围更改为驱动器范围。驱动器类似下面的示例:

    私有静态列表范围=Collections.singletonList(DriveScopes.DRIVE)

    3-重新运行程序。它将要求您登录您的谷歌帐户,给予访问许可

    4-它将在您的项目中生成一个新的OneTokens目录,现在在google Drive上具有读写权限


    这对我很有用。

    基本上,如果您已经在启用了de-Drive API并创建了credentials.json文件,那么现在您需要:

    1-删除上次执行时生成的令牌目录。此目录中包含一个文件StoredCredential。 2-将de范围更改为驱动器范围。驱动器类似下面的示例:

    私有静态列表范围=Collections.singletonList(DriveScopes.DRIVE)

    3-重新运行程序。它将要求您登录您的谷歌帐户,给予访问许可

    4-它将在您的项目中生成一个新的OneTokens目录,现在在goo具有读写权限