昨天我安装了新版本的Netbeans(NetBeans IDE 8.2(Build 201705191307)),从那以后我无法连接到我的gitlab repo(尝试克隆项目失败)。凭证很好,可以在其他计算机和系统上工作,我通过浏览器登录(我首先想到的是我尝试了错误的密码并禁止了我的IP)。
我使用Windows 10,Java 1.8.0_31。
编辑:访问gitlab可以使用旧版本的NetBeans(不确定是哪一个但是高于8.0)
将JDK更新为1.8.0_171 - 仍未成功。
这也是在IDE日志中找到的
INFO [org.netbeans.modules.git]:java.lang.InternalError:不应该到这里 java.lang.InternalError:不应该到这里来 at sun.nio.fs.WindowsNativeDispatcher.CreateSymbolicLink0(Native Method) at sun.nio.fs.WindowsNativeDispatcher.CreateSymbolicLink(WindowsNativeDispatcher.java:901) at sun.nio.fs.WindowsFileSystemProvider.createSymbolicLink(WindowsFileSystemProvider.java:578) at java.nio.file.Files.createSymbolicLink(Files.java:1043) at org.eclipse.jgit.util.FileUtil.createSymLink(FileUtil.java:96) 在org.eclipse.jgit.util.FS_Win32_Java7.detectSymlinkSupport(FS_Win32_Java7.java:80) at org.eclipse.jgit.util.FS_Win32_Java7.supportsSymlinks(FS_Win32_Java7.java:71) 在org.eclipse.jgit.internal.storage.file.FileRepository.create(FileRepository.java:306) 在org.eclipse.jgit.lib.Repository.create(Repository.java:169) 在org.netbeans.libs.git.jgit.commands.InitRepositoryCommand.run(InitRepositoryCommand.java:89) 在org.netbeans.libs.git.jgit.commands.GitCommand $ 1.run(GitCommand.java:80) 在org.netbeans.libs.git.jgit.commands.GitCommand $ 1.run(GitCommand.java:77) at java.security.AccessController.doPrivileged(Native Method) 在org.netbeans.libs.git.jgit.commands.GitCommand.execute(GitCommand.java:77) 在org.netbeans.libs.git.GitClient.init(GitClient.java:871) 在org.netbeans.modules.git.client.GitClient $ 33.call(GitClient.java:574) 在org.netbeans.modules.git.client.GitClient $ 33.call(GitClient.java:570) at or or or or or or or or or or or or at or or or or or or or or or or or or at or or or or or or or or or or or 在org.netbeans.modules.git.Git.runWithoutExternalEvents(Git.java:282) 在org.netbeans.modules.git.client.GitClient $ CommandInvoker.runMethodIntern(GitClient.java:989) 在org.netbeans.modules.git.client.GitClient $ CommandInvoker.runMethod(GitClient.java:916) 引发:org.netbeans.libs.git.GitException 在org.netbeans.modules.git.client.GitClient $ CommandInvoker.runMethod(GitClient.java:932) 在org.netbeans.modules.git.client.GitClient $ CommandInvoker.runMethod(GitClient.java:898) 在org.netbeans.modules.git.client.GitClient $ CommandInvoker.access $ 400(GitClient.java:892) 在org.netbeans.modules.git.client.GitClient.init(GitClient.java:570) [catch] at org.netbeans.modules.git.ui.clone.RepositoryStep $ RepositoryStepProgressSupport.perform(RepositoryStep.java:323) at or or or or or or or or or or or or 在org.netbeans.modules.git.client.GitProgressSupport.run(GitProgressSupport.java:108) 在org.openide.util.RequestProcessor $ Task.run(RequestProcessor.java:1443) 在org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:68) at org.openide.util.lookup.Lookups.executeWith(Lookups.java:303) 在org.openide.util.RequestProcessor $ Processor.run(RequestProcessor.java:2058)
答案 0 :(得分:0)
堆栈跟踪显示尝试通过调用 Files.createSymbolicLink()创建符号链接时代码失败。要在Windows 10上执行此操作,您必须以管理员权限运行,或者您需要有权创建符号链接,因此问题的真正解决方案是设置适当的User Account Control (UAC)。即使您创建了要添加符号链接的文件或目录,也是如此。
如果您打开命令提示符窗口,请创建一个目录,然后尝试添加一个符号链接,它将失败并显示错误“您没有足够的权限来执行此操作” ,但如果您在打开命令提示符窗口之前选择以管理员身份运行时执行相同操作,则可以正常工作:
在Windows 10上的Java应用程序中创建符号链接时,同样的原则适用,并且适当的解决方案是适当地设置UAC。但是,有一个简单的解决方法:就像您可以以管理员身份打开命令提示符窗口一样,您也可以以管理员身份运行NetBeans:
一旦你这样做, java.lang.InternalError 应该消失。
您可以在下面运行简单的Java应用程序,以确认在Windows 10下创建符号链接时需要管理员权限。应用程序失败并显示 FileSystemException (“所需的权限不是如果正常启动,则从NetBeans调用 Files.createSymbolicLink()时由客户端持有“”,但在NetBeans 以管理员身份运行时可以正常工作。
public class SymLink {
public static void main(String... args) throws IOException {
String originName = "c:\\ThisIsJunk";
String targetName = originName + "SymLnk";
Path origin = Files.createDirectories(Paths.get(originName));
Path target = Paths.get(targetName);
try {
Files.delete(target);
} catch (NoSuchFileException e) {
}
try {
Path symLink = Files.createSymbolicLink(target, origin);
System.out.println("Symbolic link created: " + symLink.toString());
} catch (AccessDeniedException e) {
e.printStackTrace();
}
}
}
答案 1 :(得分:0)
在以管理员模式运行时遇到上述相同的问题之后,我注意到我有在Windows 8兼容模式下运行的Netbeans。取消选中兼容模式后,我便可以连接到Github存储库。