我正在使用Emacs 23.2。这是我加载语义的方式:

(setq semantic-default-submodes '(global-semantic-idle-scheduler-mode
                  global-semanticdb-minor-mode
                  global-semantic-idle-summary-mode
                  global-semantic-mru-bookmark-mode))
(semantic-mode 1)

因此,如果我创建一个简单的java文件并访问它,则将获得本地定义的方法和类的代码完成。但是我不知道如何使语义知道jdk库。例如,如果我在String变量上尝试semantic-ia-complete-symbol,我会得到Cannot find types for 'String blah'

有谁知道如何将jdk库加载到语义数据库中,以便提供诸如String之类的标准对象类型的代码完成功能?

最佳答案

从CEDET 1.1开始,语义支持通过javap检索类信息。您需要将cedet-java-jdk-root变量设置为JAVA_HOME,并使用Java的系统jar的路径列表填充semanticdb-javap-classpath变量,例如rt.jar等。

an article(俄语,但您可以得到translation)有关为Java补全设置语义-请在此处查看更多详细信息。

10-08 00:27