java - 编译单个 Java 文件

标签 java

对于 Java 来说相对较新 - 我只是更新 JAR 文件中的一个文件。我已经反编译了 JAR,并且可以访问 Java 文件。

我正在尝试使用 javac,但是当我使用它时,它会抛出错误,因为它没有对各种依赖项的引用。

我需要编译所有内容才能摆脱这些吗?有没有一种简单的方法来编译一个文件?

javac MessageNotificationService.java
...

MessageNotificationService.java:108: error: cannot find symbol
        List<EmailNotification> pendingEmails = this.messageDao.findPendingNotification("merchant", "new_message");
             ^
  symbol:   class EmailNotification
  location: class MessageNotificationService
MessageNotificationService.java:111: error: cannot find symbol
            List<Long> ids = pendingEmails.stream().map(EmailNotification::getId).collect(Collectors.toList());
                                                        ^
  symbol:   variable EmailNotification
  location: class MessageNotificationService
MessageNotificationService.java:182: error: cannot find symbol
        for (EmailNotification notification : pendingEmails) {
             ^
  symbol:   class EmailNotification
  location: class MessageNotificationService
39 errors

抱歉,如果这是一个基本问题 - 所有与此有关的搜索结果似乎都是针对没有此类错误的独立文件。

最佳答案

据我所知,您只需指向旧的 JAR 文件

javac -cp "./old-jar-file-1.0.0.jar" ./location-of-file/MessageNotificationService.java

关于java - 编译单个 Java 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57207201/

相关文章:

java - Java 中有没有类似于 Go 的 Select 的关键字或方法?

java - 将基于文本的游戏制作成可执行的 jar - Java

java - 无法使用 ResourceBundle.getBundle() 加载 ResourceBundle 找不到基本名称、区域设置 en_US 的包

java - 使用 Eventful API[JSON] 未获得结果

java - 无法解决 BufferOverflow 异常 - Java

java - Until 方法不抛出 timeoutException

java - 在哪里设置 EJB3 客户端的 Web 服务主机名

java - OSGi - 检查一组 bundle 是否可以一起启动(在运行之前)

java - 两个长值相减时相差一个小时

可能的 Java 泛型(模板)特化(用特定类型覆盖模板类型)