2017-04-06 113 views
0

我跟随谷歌驱动器V3快速启动 tutorial 我不想使用Gradle的这个应用程序,因为是一个团体项目。
我已经下载了谷歌驱动器v3库。谷歌Drive api Java快速入门EOFException

我正在使用Intellij,并且已将所有jar添加到类路径中。所有jar都成功导入,并且IDE不会给出任何错误。
在运行时,我收到一条警告,表明在线阅读似乎是Windows兼容性问题。
我已经下载了用户ID和用户秘密以.json文件,并把它放在同一个文件夹作为主
我的代码是一样的快速入门例子的一个:

错误我得到的是以下几点:

Apr 06, 2017 2:31:52 PM com.google.api.client.util.store.FileDataStoreFactory setPermissionsToOwnerOnly 
 
WARNING: unable to change permissions for everybody: C:\Users\HP\.credentials\drive-java-quickstart 
 
Apr 06, 2017 2:31:52 PM com.google.api.client.util.store.FileDataStoreFactory setPermissionsToOwnerOnly 
 
WARNING: unable to change permissions for owner: C:\Users\HP\.credentials\drive-java-quickstart 
 
Exception in thread "main" java.io.EOFException 
 
\t at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2624) 
 
\t at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:3099) 
 
\t at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:853) 
 
\t at java.io.ObjectInputStream.<init>(ObjectInputStream.java:349) 
 
\t at com.google.api.client.util.IOUtils.deserialize(IOUtils.java:171) 
 
\t at com.google.api.client.util.store.FileDataStoreFactory$FileDataStore.<init>(FileDataStoreFactory.java:102) 
 
\t at com.google.api.client.util.store.FileDataStoreFactory.createDataStore(FileDataStoreFactory.java:73) 
 
\t at com.google.api.client.util.store.AbstractDataStoreFactory.getDataStore(AbstractDataStoreFactory.java:55) 
 
\t at com.google.api.client.auth.oauth2.StoredCredential.getDefaultDataStore(StoredCredential.java:171) 
 
\t at com.google.api.client.auth.oauth2.AuthorizationCodeFlow$Builder.setDataStoreFactory(AuthorizationCodeFlow.java:736) 
 
\t at com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow$Builder.setDataStoreFactory(GoogleAuthorizationCodeFlow.java:209) 
 
\t at com.elox.Main.authorize(Main.java:77) 
 
\t at com.elox.Main.getDriveService(Main.java:93) 
 
\t at com.elox.Main.main(Main.java:103) 
 
\t at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
 
\t at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
 
\t at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
 
\t at java.lang.reflect.Method.invoke(Method.java:498) 
 
\t at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)

我不明白为什么我得到这个错误或我怎么能改正它

+0

你有哪些用户凭证? – Flikk

回答

0

我知道这是一个旧帖子,但我几乎完全相同的堆栈跟踪并找不到答案。所以,我希望它能帮助那些追随我的人。

此问题似乎与文件/目录权限有关。只要将FileDataStoreFactory使用的文件路径更改为我的应用程序具有读/写权限的目录,OAuth2就能正常工作。因此,请确保您使用的是非受限文件路径,并且所有目录都具有正确的所有权和许可权。