JavaCompiler类路径Windows vs Linux

时间:2015-10-27 12:48:04

标签: java classpath java-compiler-api

我想创建一个可以生成和编译java源代码并从中生成jar文件的工具:

为此我使用JavaCompiler:

JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();

当我将类路径添加到Java SystemCompiler时:

optionList.addAll(Arrays.asList("-cp", classpath));

当我使用&#34 ;;"设置我的类路径时,它适用于Windows作为分隔符:

classpath = "jar1.jar;jar2.jar;dir/jar3.jar;dir/jar4.jar";

在Linux中它失败了。

当我使用空间而不是;像:

classpath = "jar1.jar jar2.jar lib/jar3.jar lib/jar4.jar";

两个系统都失败了。

同样适用于:

classpath = "lib/*"

我需要一个可以独立生成工作类路径系统的解决方案。

更新(解决方案):

好的,我发现有一个java优惠

File.pathseparator 

对应于系统环境的哪些更改。

另见File.separator or File.pathSeparator

2 个答案:

答案 0 :(得分:2)

在Linux上,你应该使用:

  

CLASSPATH = path1:path2:...

Oracle文档:

Linux

Windows

答案 1 :(得分:1)

在Linux上使用:代替您经常在Windows上使用的;