javac - 使用--patch-module和未命名的模块类

时间:2018-04-01 16:13:23

标签: java javac java-9 jigsaw java-module

我有以下目录结构:

src
  +- java.base
     +- java
        +- lang
            +- Object.java

  +- java.logging
     +- java
        +- util
            +- logging
                +- FileHandler.java

  +- com
     +- example
        +- MyClass.java

ObjectFileHandlerMyClass可以互相引用。

为了编译这些,我尝试运行(在src目录中):

javac  --patch-module java.base=java.base \
  --patch-module java.logging=java.logging $(find . -name *.java)

但它导致错误:

error: too many patched modules (java.base,java.logging), use --module-source-path

然后我尝试了:

javac  --patch-module java.base=java.base \
  --patch-module java.logging=java.logging \
    --module-source-path . \
      $(find . -name *.java)

然后我收到错误:

error: not in a module on the module source path package com.example;

那么如何才能编译这些?

供参考:

  • 假设javac在src目录中运行。
  • java.basejava.logging中的类可能会引用com.example
  • 中的类
  • 我知道如何使用--add-reads标志来破解封装。我想要的是能够在没有上述两个错误的情况下进行编译。

0 个答案:

没有答案