- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我必须为一门类(class)编写一个java项目,我们的教授要求我们使用CMake作为构建工具。在我的入口点(主类)中,我想使用位于另一个包中的类。在尝试编译它时,我收到以下错误消息(附在下面)。
在 Foo.java 中使用此通配符导入
import xxx.util.*;
有帮助,但我确信这不是实现我的目标的最优雅的方法。
我无法弄清楚如何解决这个问题,因为使用另一个内置工具(maven)或手动编译它都没有问题。但由于我必须使用 CMake,我希望任何人在使用这种项目设置时遇到类似的问题,并且能够帮助我。
我在下面列出了所有相关的项目信息(结构、受影响的类、CMakeLists.txt...)。
请随时在评论部分提出问题,以消除任何歧义。
谢谢!
相关项目结构:
.
|-- CMakeLists.txt
|-- build
|-- resources
| |-- MANIFEST.MF
| \-- sqlite.jar
|-- src
| \-- xxx
| |-- gui
| | \-- Foo.java
| \-- util
| |-- Bar.java
Foo.java:
package xxx.gui;
import xxx.util.Bar;
public class Foo {
public static void main(String[] args) {
Bar bar = Bar.getBar(); //singleton
}
}
Bar.java:
package xxx.util;
public class Bar {
}
CMakeLists.txt:
cmake_minimum_required(VERSION 3.5)
project(xxx LANGUAGES Java)
find_package(Java 1.8 REQUIRED COMPONENTS Development)
include(UseJava)
file(GLOB_RECURSE SOURCES "src/*.java")
file(GLOB_RECURSE JARS "resources/sqlite*.jar")
add_jar(DataFX ${SOURCES} MANIFEST ./resources/MANIFEST.MF INCLUDE_JARS ${JARS}
ENTRY_POINT xxx.gui.Foo)
list .MF:
Class-Path: ../resources/sqlite.jar
相关错误消息:
gui/Foo.java error: package xxx.util does not exist
import xxx.util.Bar;
^
gui/Foo.java error: cannot find symbol
Bar bar = Bar
^
symbol: class Bar
location: class Foo
...
最佳答案
出现此错误似乎很合乎逻辑。 CMake 与其他 make 实用程序一样,在很大程度上取决于类的编译顺序。
从您附加的 makefile 中可以明显看出,make 的入口点是“xxx.gui.Foo”包,问题在于 Foo.java 依赖于 Bar.java,而此时尚未编译。
如果你切换顺序,你可以让它正常工作,没有任何问题,即 Bar.java 在 Foo.java 之前构建。
总而言之,如果您需要使用 make 文件来保留所有实用程序类,并且通常所有类对 make 文件顶部的其他包/类的依赖性尽可能小,以便最大限度地减少依赖,那么这是一个好主意此类问题。
现在,回答一下为什么使用 Maven 或 javac 不会遇到这个问题,如果是前者,它是一个构建工具,因此它自己无法解决所有这些问题。对于后者,我想您已经编译了这两个类,因此它可以工作。
希望以上内容能解决您的问题。
关于java - 在java项目中使用cmake时出现"package xxx.util does not exist"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49480866/
我从我的服务器获取此 IP,例如: "/177.127.101.68:53964" "/201.80.15.100:54263" "/177.67.38.54:51309" 我需要它就像“177.12
终端抛出此错误意味着什么以及如何解决它? packet_write_wait: Connection to xxx.xxx.xxx.xxx: Broken pipe 这是今天刚刚发生的事情。正常工作一
这应该是非常简单的,但我不能让它为我的生活工作。我只是想远程连接到我的MySQL服务器。。连接方式:。运作良好,但正在尝试:。失败,并显示以下错误:。错误1130(00000):不允许主机‘xxx.x
正在尝试将坞站映像推送到私有坞站存储库。但收到如下错误:“拨号tcp:lookup xxx.xxx:没有这样的主机”。我已正确登录到存储库,并且构建成功。。以下命令用于将映像推送到私有repo:sud
这个问题已经有答案了: Android 8: Cleartext HTTP traffic not permitted (37 个回答) 已关闭 3 年前。 这是 list 文件
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: A comprehensive regex for phone number validation 什么是正
尝试将 docker 镜像推送到私有(private) docker 存储库。但出现类似错误:“dial tcp:lookup xxx.xxx.xxx.xxx: no such host”。我已正确登
我搜索了 StackOverflow,并在尝试打开引用不同项目中的 UserControl 的表单时发现了类似的问题。 我明白 To prevent possible data loss before
我收到的错误是 com.sun.xml.ws.client.ClientTransportException: HTTP transport error: java.io.IOException: H
我需要用 preg_match 检查输入,它必须是这种格式:xxx.xxx.xxx block 的数量可以变化......这些都是有效输入的例子: 001 00a.00a 0fg.001 aaa.aa
在所有构建过程完成且没有任何错误后,我遇到了失败。 我不知道为什么会出现以下错误。 即使所有测试均已成功完成,此错误仍将作业状态标记为失败。致命:来自 socaautovm1.xxx.local/19
我有一个单独托管的 Postgres 数据库,我正试图将其与我的 Phoenix 应用程序一起使用。我的 prod 配置是: config :my_app, MyApp.Repo, adapter
我尝试使用 terraform 在 Azure 中创建负载均衡器,但收到此错误: Error: creating/updating Load Balancer "lbclassic" (Resourc
Java中是否有一个类可以让您将“102203345.32”之类的数字格式化为“102.203.345,32”并返回字符串类型? 我想获得一个字符串,其中千位由“.”分隔。小数点之间用逗号“,”分隔。
大家好,我已经通过大量在线编码来获取我的 android 手机 IP 地址大多数都以结尾 if (!inetAddress.isLoopbackAddress()) {
首先,我知道 this question .由于我既没有使用 maven 也没有使用 jenkins,因此无法使用提供的解决方案。 在使用 sonar-runner 分析我的项目时,我收到以下警告:
我的脚本有些问题。它应该通过代理打开一个网站,但我总是遇到这个错误,我正在尝试使用几个代理... 它会是什么? Traceback (most recent call last): File "C
我正在使用远程数据库在 PHP 下开发 Web 应用程序,其中我有以下测试脚本: try { $dbh = new PDO('mysql:host=XXX.XXX.XXX.XXX;dbname
我正在尝试使用 php-facebook-sdk 并借助 curl Facebook API 创建广告。 我已经使用 curl 上传了我的视频,它返回了一个 ID。现在,该视频 ID 将用于添加广告,
首先,这是一个编程问题,因为我正在尝试设置与生产服务器一起运行的测试/QA 服务器。 其次,是的,我应该将其发布在 Serverfault 上,但我尝试使用三个不同的 OpenID 提供程序登录,每次
我是一名优秀的程序员,十分优秀!