有没有办法阻止NetBeans扫描项目?

我的电脑上没有太多内存,而且处理器也很弱。 尽pipenetbeans是我最喜欢的IDE,但是由于在打开程序时会自动启动项目扫描,因此在我的当前计算机上使用它几乎是无法忍受的。

有没有办法来防止netbeans扫描项目?

嘿乔治我不知道这是否是一个很大的答案,但我右键单击并select“closures”项目,我不需要打开。 在那里列出所有过去的项目是没有意义的。 只有你正在开发的那个。 您可以随时从菜单中重新打开其他项目。 一旦你没有使用的所有项目closures,每次启动Netbeans时都不会被扫描。

除了为您真正处理的文件夹创build更小的项目 ,然后为项目组 (Mateng)分组项目之外,您还可以尝试排除永不工作的文件夹,例如images文件夹等。 要忽略这些文件夹,请转到:

File > Project Properties > Ignored Folders > Add Folder...

从NetBeans帮助:

“忽略的文件”属性与“包含path”相反。 这些是PHP项目中的文件,您希望IDE忽略FTP上载, 扫描等。

试试这个: http : //wiki.netbeans.org/ScanOnDemand

警告:目前,这个插件只适用于开发版本。 正式版本不要使用这些说明…

只要启动NetBeans IDE,系统就会进行所谓的“最新检查”,以确认没有文件被更改。 如果这似乎花费太长时间,并阻止您执行工作,则可能对ScanOnDemand感兴趣。

ScanOnDemand最基本的function是在启动IDE后禁用(可能很长时间)的最新检查。 这是在你期望的情况下完成的,你的源代码的大部分操作都是在IDE内部完成的,因此当IDEclosures时,不会发生重要的变化,因此不需要重新扫描任何东西。 实际上,这可能不完全准确,但修复很简单,在极less数情况下,使用其他工具显着更新源代码时,只需手动触发刷新。

NetBeans IDE再一次为您提供更多的控制。 你留在负责,决定做什么,什么时候…

为了帮助这个领域,我们决定创build一个实验模块,这个模块在更新中心上可用(从6.7版开始)。 在某些情况下,模块省略了自动更新(例如启动后和切换到主窗口后的最新检查)。 调用重新扫描并使数据更新的责任在用户上 – 通过显式刷新操作…

我知道这是一个老问题,但这可能会帮助其他人…要启用或禁用后台扫描,您可以find菜单下的选项工具 – >选项 – >杂记 – >文件

https://blogs.oracle.com/netbeansphp/entry/enable_auto_scanning_of_sources

除了closures不需要的项目 (David)之外,您还可以创build包含相关项目(或者仅包含一个项目)的项目组:

File > Project Group > New Group...

然后可以通过从同一菜单指向项目组来打开项目组。 最棒的是:每个组都记得上次在编辑器窗口中打开哪些文件。 我将我所有的项目组织在一起,显着减less了扫描。

(顺便说一句:有一个方便的插件提供了一个项目组快捷方式到工具栏 )

编辑:我也使用了一段时间的按需扫描 – 真的很好。 荣誉的答案。

停止NetBeans扫描项目:

  Menu -> Tools -> Options -> Miscellaneus -> Files -> Uncheck Enabel auto-scanning 

停止Netbeans扫描项目

我不知道你是否可以禁用项目扫描。 即使可以,我怀疑它会再次正常工作。 我已经做了一些提示,并加快了我的Netbeans。

  1. closures任务窗口。 这可以防止Netbeans在评论中扫描TODO。
  2. 排除* .jar,java文件夹和netbeans文件夹的病毒扫描。 这加快了我的netbeans很多。

Netbeans消耗大量的内存,因此添加内存也会提高性能(当内存不足时,操作系统不需要在内存和页面文件之间进行交换)(但这可能不适用于您)。 而且,Netbeans由数百个需要在启动时加载的文件组成,所以底部是硬盘的速度。

而另一个快速的事情,你可以做的只是删除项目中的nbproject文件夹,然后打开NeteBeans。 那么该项目从列表中删除。 当我冻结时,我会做一些事情

我也偶然发现了这个问题。

最简单的事情是编辑netbeansconfiguration,所以它不会加载所有的项目。 您可以随时从菜单中重新打开其他项目。 一旦你不使用的所有项目都closures,每次启动netbeans时都不会被扫描

解决scheme:只需在etc文件夹下find的netbeans.conf中更改以下行

#$ {HOME}将被JVM取代user.home系统属性netbeans_default_userdir =“$ {HOME} /。netbeans / changeme”

试试这个Netbeans插件。 这减less了一些延伸的负载。

http://wiki.netbeans.org/ScanOnDemand

不完全是问题的情况,但有时“扫描项目”可以通过重新启动Netbeans停止。

在我的情况下,使用jdk 1.8时,存在多个静态导入时会遇到大问题(请参阅示例)。 看来,有一个javac的问题。 检查这样的.java文件时,编译器非常慢,NetBeans扫描非常慢。 看来每次重复静态导入,编译和扫描时间都会非常快。 所以,如果这是你的情况,只要删除重复import

 package ru.cntp.demo; import java.math.BigDecimal; import static java.util.Arrays.asList; import java.util.List; import java.util.Map; import static java.util.stream.Collectors.groupingBy; import static java.util.stream.Collectors.groupingBy; import static java.util.stream.Collectors.groupingBy; import static java.util.stream.Collectors.groupingBy; import static java.util.stream.Collectors.groupingBy; import static java.util.stream.Collectors.groupingBy; import static java.util.stream.Collectors.groupingBy; import static java.util.stream.Collectors.groupingBy; import static java.util.stream.Collectors.groupingBy; import static java.util.stream.Collectors.groupingBy; /** * * @author sergiu */ public class EmployeeRepository { public Map<Department, Map<String, Map<String, Map<String, Map<BigDecimal, List<Employee>>>>>> getEmployeesByDepartment() { Country germany = new Country("Germany"); Department germanyDeptOne = new Department("Dept One", germany); Employee emp1 = new Employee("Surame", "Name", "Patronymic", BigDecimal.TEN, germanyDeptOne); return asList(emp1).stream() .collect(groupingBy(Employee::getDepartment, groupingBy(Employee::getSurname, groupingBy(Employee::getName, groupingBy(Employee::getPatronymic, groupingBy(Employee::getSalary)))))); } } 

使用以下步骤可以改善Netbeans的扫描性能:
1)进入窗口 – >文件。 这将打开“文件”选项卡。
2)在每个打开项目的“文件”选项卡中打开nbproject文件夹,在其中打开project.properties文件。
3)现在在这个文件下面的属性“排除”有文件引用列出所有您引用的库(JARs)
4)可能会有一些重复的文件引用与可能是旧的或在别人的机器上的path(如果你在一个组中工作,并从别人的机器转移项目)
5)删除那些旧的path引用。
示例 –
excludes=
file.reference.xyz.jar=../not/correct/path.jar //delete this line
file.reference.xyz.jar-1=../correct/path.jar //remove -1
....
includes=**

6)还要find属性“javac.classpath”,并删除与上面描述的已删除引用相对应的不必要的类path条目。
示例 –
javac.classpath=\
${file.reference.xyz.jar}:\ //delete this line
${file.reference.xyz.jar-1}:\ //remove -1
....
javac.compilerargs=

7)现在文件引用部分提到的文件引用和javac.classpath属性是相同的,并指向您的机器或networking上的有效的库(JAR)地址。
示例 –
excludes=
file.reference.xyz.jar=../correct/path.jar //the correct reference & path
....
includes=**
....
javac.classpath=\
${file.reference.xyz.jar}:\ //the correct classpath entry for reference
....
javac.compilerargs=
....

上面的程序工作的原因(在我的情况)是因为它阻止Netbeans扫描可能不存在于您的机器/networking上的不必要的库path。

我有最快最简单的方法。

只需将netbeans元数据放到另一个位置,而不是放在项目目录中

如果您的项目是一个Maven结构化项目,您可以使用一个简单的技巧,使您和NetBeans的生活变得更容易。

我的机器上有我的项目在c:\ dev中。 这就是Netbeans正在与之合作的地方。 如果我build立在这个文件夹中,那么NetBean的后台进程会非常繁忙。

但是,如果我在c:\ build \ trunk中启动mvn clean install之前将c:\ dev \ trunk项目复制到c:\ deploy \ trunk ,那么NetBeans不需要扫描在该文件夹中发生的更改。 它不知道。

我在一台Windows机器上使用:

robocopy c:\ dev \ trunk c:\ deploy \ trunk / MIR / NFL / NS / NC / NDL / XD“.svn”

这是一个Windows本地命令。 不需要额外的安装。

它帮助我大大减less了构build时间,也避免了在Netbeans上永不结束的扫描。

如果您使用JRebel这样的工具,当您将更改的类更新到c:\ deploy \ trunk文件夹时,仍可以像这样工作。 您可以使用相同的命令。

这当然是一个解决方法,但它有很大的帮助。 🙂

对于Netbeans 8。* + ,来自Zeophlite的答案的ScanOnDemand插件不起作用。 请使用MasterFileSystemSuspend ,因为它是最新版本,在稳定版本上运行良好。

插件来控制NetBeans IDE何时作出更改以及何时忽略它们。 通过额外的用户操作来保存编译的有用附加function – 通过将IDE置于挂起模式,可以执行(并完成)命令行操作,然后才能打开IDE。

插件的代码在main / contrib库中。 该插件可以从媒体下载:Org-netbeans-modules-masterfs-suspend.nbm并安装(Tools / Plugins / Downloaded)到NetBeans 8.0,8.1,8.2 。

在这里输入图像说明

安装完成后,工具栏中会出现一个新的图标,用户可以通过点击来暂停IDE的自动刷新。 在NetBeans 8.2和更新版本中使用Truffle源代码时非常有用。

这个模块是以前的ScanOnDemand模块的一个方便的替代品。


个人而言,这使我的netbeans的内存消耗量从一般的20gb +一直下降到了2gb,并且为扫描器不断悬挂和泄漏的内存提供了一个很好的解决方法,特别是在非常大的项目或那些有大量符号链接。

随着时间的推移我的项目变得非常大

在以下两种情况下,速度太慢了:

  1. 在打开NetBeans项目时 – 这太慢了
  2. 自动扫描NetBeans项目

没有为我工作的是:
1.做窗口>重置Windows只能暂时解决
2.有时候觉得我的GIT仓库与Netbeans的集成是主要问题,但没有明确的证据

解决scheme1):

运行下面的命令:

警告以下命令具有自动删除命令

 Close the Netbeans IDE cd %USERPROFILE%\AppData\Local\NetBeans\Cache\ && del /s /q .\ && rmdir /s /q .\ cd %USERPROFILE%\AppData\Roaming\NetBeans\8.2\var\filehistory\ && del /s /q .\ && rmdir /s /q .\ cd %USERPROFILE%\AppData\Roaming\NetBeans\8.2\var\log && del /s /q .\ && rmdir /s /q .\ 

而且,问题1)现在很less出现,有时Netbeans几乎立即加载。

2)解决scheme:


F1 ….
…….. F11
…….. F12
F2 ….
…….. F21
…….. F22

根是一个文件夹,也是主要的NetBeans项目
f1,f2只是文件夹
f11,f12,f21,f22也是NetBeans项目的子文件夹

早些时候,我开放了Netbeans项目,由于netbeans从根目录扫描整个项目,系统变得太慢,而且防病毒工作非常努力与Netbeans项目扫描配合,导致系统中的一切都变得缓慢。

现在,解决scheme是开放的子项目,如f11,f12,f21,f22等,你可以打开很多小的子项目,Netbeans项目扫描问题已经完全消失。

我的Netbeans 8.0.2会崩溃在我的MacBook Pro由于“扫描项目…”占用我的CPU。 我无法停止进程,但是,通过增加netbeans.conf中的Java堆内存,可以使进程更快完成。

 $ vi /Applications/NetBeans/NetBeans\ 8.0.2.app/Contents/Resources/NetBeans/etc/netbeans.conf 

replace这个:

 netbeans_default_options="-J-client -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-Dapple.laf.useScreenMenuBar=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.java2d.noddraw=true -J-Dsun.java2d.dpiaware=true -J-Dsun.zip.disableMemoryMapping=true" 

有:

 netbeans_default_options="-J-client -J-Xss2m -J-Xms2048m -J-Xmx2048m -J-XX:PermSize=32m -J-Dapple.laf.useScreenMenuBar=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.java2d.noddraw=true -J-Dsun.java2d.dpiaware=true -J-Dsun.zip.disableMemoryMapping=true"