java.class 文件的目录结构与源文件相同吗?

标签 java jar build .class-file

目前,我通过以下步骤从 src 文件到 jar 进行一些运行时编译:

首先:在目录和子目录中生成源文件

/main    
  /submain1
  /submain2 

第二:编译代码(目前所有.class文件都进入这个目录)

 /builddir

第三:从.class文件生成jar到目标文件夹

 /target

编译由Java ToolProviders Javacompiler完成

ArrayList<File> files1 =  getSourceFiles();
Iterable<? extends JavaFileObject> compilationUnits1 = fileManager.getJavaFileObjectsFromFiles(files1);
JavaCompiler.CompilationTask task = compiler.getTask(null ,fileManager , null, optionList, null, compilationUnits1 );
boolean compiled = task.call();

现在我的第一个问题是,将所有 .class 文件分成不同的编译单元并重建与源文件相同的目录结构会更好吗?

如果是这样,该怎么做?

最佳答案

Now my first question is, would it be better to separate all .class files into different compilation units and rebuild the same directory structure as the source files have?

.class 文件的输出结构必须反射(reflect)源文件中使用的包名称。 AFAIK 源文件的文件夹结构并不重要。

如果您在 .jar 文件中使用任何其他结构,类加载器将无法找到类。

所以你的问题的答案是

关于java.class 文件的目录结构与源文件相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33252472/

相关文章:

java - 使用 spring 中方法返回的对象注入(inject)构造函数

java - 从 Web 服务获取响应时出错非默认命名空间无法映射到空 URI

c++ - 在 Visual Studio 中运行小型 C++ 程序而不创建项目

java - 包含的 Jsoup 库将编译但不运行

java - 跟踪运行时拖动事件的进度。 JavaFX

java - 如何修改 JAR 中包含的文件(该文件是 IntelliJ 中的依赖项)

javascript - 如何从 Firefox 扩展中运行外部 jar 文件

java - 将 .jar 文件集成到 Android 应用程序中

android - 如何搭建astrid task开源项目

c++ - 体系结构 x86_64 jsonrpc 库的 undefined symbol