Syntastic Not将类路径传递给Javac

时间:2016-04-08 10:00:11

标签: vim javac syntastic

我在Windows中工作,尝试将gVIM与Syntastic用于Java项目,我似乎无法获得将Java类路径发送到编译器的插件。

这是我的_vimrc配置:

let g:syntastic_java_checkers=['java']
let g:syntastic_java_javac_config_file_enabled = 1

这会将Syntastic配置为从我的工作目录中名为.syntastic_javac_config的文件中读取类路径,我已使用以下信息填写该文件(为了便于阅读而删除了绝对路径):

let g:syntastic_java_javac_classpath = '<project root>\build\classes\main;<project root>\build\resources\main;<project root>\build\classes\test;<project root>\build resources\test'

上面的配置是正确的,因为我可以运行命令:SyntasticJavacEditClasspath,它显示我在配置文件中配置的类路径。但是,出于某种原因,类路径永远不会传递给javac。如果我在Microsoft的SysinternalsSuite中运行procmon.exe工具,我会看到使用以下命令行调用javac(其中<working file>是绝对路径):

javac -Xlint -d %AppData%\Local\Temp\1\vim-syntastic-javac <working file>

值得注意的是缺少配置类路径的-cp参数。结果是我导入到其他类的所有生成了失败,以及我的代码中对这些类的每次引用。有点没用。

我希望有人可以提出一个关于这里可能出错的想法。我已经查看了Syntastic中的javac.vim文件,但没有什么能成为问题的明显来源。如果有人知道如何逐步完成Vimscript,我会认为这也是一场胜利。

1 个答案:

答案 0 :(得分:1)

我能够逐步使用Vim的:debug工具,发现javac语法检查器没有像我预期的那样拆分类路径,而是寻找\n作为路径分隔符而不是操作系统原生的路径分隔符(Windows中为;,* nix上为:)。以这种方式在.syntastic_javac_config中指定类路径解决了这个问题。

我会做更多的研究,以确定问题是由于我的误解,还是Syntastic中的错误,我会在必要时提交错误报告。