【问题标题】:JavaCompiler classpath Windows vs LinuxJavaCompiler 类路径 Windows 与 Linux
【发布时间】:2016-01-26 21:20:38
【问题描述】:

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

为此,我使用 JavaCompiler:

JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();

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

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

当我使用“;”设置我的类路径时,它适用于 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

【问题讨论】:

    标签: java classpath java-compiler-api


    【解决方案1】:

    在 linux 上你应该使用:

    CLASSPATH = path1:path2:...

    Oracle 文档:

    Linux

    Windows

    【讨论】:

      【解决方案2】:

      在 linux 上使用 : 而不是在 Windows 上经常使用的 ;

      【讨论】:

      • 我是否有可能独立生成一个有效的CP系统?
      • 请澄清您的问题。你的意思是要创建在任何平台上运行的脚本并按照当前平台的规则生成类路径?
      猜你喜欢
      • 2016-03-18
      • 1970-01-01
      • 1970-01-01
      • 2020-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-24
      • 2017-05-29
      相关资源
      最近更新 更多