首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java 9模块的目录布局

Java 9模块的目录布局
EN

Stack Overflow用户
提问于 2017-09-30 00:04:13
回答 2查看 2.7K关注 0票数 5

我一直试图编写一个Java 9模块,但是无论我做什么,我都会得到错误“包是空的或不存在”。我试着在网上搜索所期望的目录布局,并尝试了我能想到的目录布局的每一个变体,但都没有效果。

例如,下面是我尝试过的一个布局

bar.foo/module-info.java

代码语言:javascript
运行
复制
module bar.foo {
    exports bar.foo;
}

bar.foo/bar/foo/wtf.java

代码语言:javascript
运行
复制
package bar.foo;

public class wtf {
}

但是,编译仍然会像往常一样产生相同的错误。

代码语言:javascript
运行
复制
> javac bar.foo/module-info.java 
bar.foo/module-info.java:2: error: package is empty or does not exist: bar.foo
    exports bar.foo;
               ^
1 error
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-30 01:33:33

相反,应该工作的命令是:

代码语言:javascript
运行
复制
javac bar.foo/module-info.java bar.foo/bar/foo/wtf.java

原因是,您试图编译一个类,它需要一个包才能存在,在您的情况下就是bar.foo。但是由于您还没有创建一个,编译器就会抛出所提到的错误。

它不是关于目录布局的,而是由编译器计算的.class。提供您的另一个类(bar.foo/bar/foo/wtf.java)将在该包中创建wtf.class,因此编译器也会成功地编译module-info.class

票数 3
EN

Stack Overflow用户

发布于 2018-05-06 22:10:35

当我试图向一个没有源代码的JAR文件中添加一个module-info.java时,我遇到了同样的问题。我必须添加一个空类bar.foo.Bogus并用

代码语言:javascript
运行
复制
javac bar.foo/module-info.java bar.foo/bar/foo/Bogus.java

你以后可以把假课去掉。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46498293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档