首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在emacs语义中包含标准jdk库?

如何在emacs语义中包含标准jdk库?
EN

Stack Overflow用户
提问于 2010-11-14 01:19:31
回答 3查看 2.1K关注 0票数 6

我使用的是Emacs 23.2。下面是我加载语义的方法:

代码语言:javascript
运行
复制
(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库具有语义感知能力。例如,如果我在一个字符串变量上尝试semantic-ia-complete-symbol,我会得到Cannot find types for 'String blah'

有没有人知道如何将jdk库加载到语义数据库中,以便可以使用字符串等标准对象类型的代码完成功能?

EN

回答 3

Stack Overflow用户

发布于 2012-05-09 14:18:23

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

有一个an article (俄语版本,但你可以获得translation)来设置语义来完成Java --请查看更多细节。

票数 3
EN

Stack Overflow用户

发布于 2012-05-08 23:24:10

如果你解压$JAVA_HOME中的src.zip,你可以为你的java模式添加一个钩子,如下所示:

代码语言:javascript
运行
复制
(add-hook 'java-mode-hook
  '(lambda ()
     (semantic-add-system-include (getenv "JAVA_HOME") 'java-mode)))

它用Emacs 23.3和CEDET 1.1为我解决了这个问题。

票数 1
EN

Stack Overflow用户

发布于 2010-11-16 16:40:28

我已经有一段时间没有尝试CEDET了,所以我将盲目地问几个问题,这些问题可能会让你深入了解你的问题。

  1. 我假设JDK在你的路径上,Emacs能找到它吗?
  2. 因为JDK基本上是一堆没有源代码的jar文件,语义能解析吗?例如:如果你制作自己的Class1.java,将它编译成Class1.class,然后删除Class1.java,当你编写Class2.java并引用Class1中的一些方法时,语义可以找到它们吗?
  3. 你尝试过Have吗?
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4173737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档