我在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,我会认为这也是一场胜利。
答案 0 :(得分:1)
我能够逐步使用Vim的:debug
工具,发现javac
语法检查器没有像我预期的那样拆分类路径,而是寻找\n
作为路径分隔符而不是操作系统原生的路径分隔符(Windows中为;
,* nix上为:
)。以这种方式在.syntastic_javac_config
中指定类路径解决了这个问题。
我会做更多的研究,以确定问题是由于我的误解,还是Syntastic中的错误,我会在必要时提交错误报告。