java反编译后再编译成class时提示缺少包

问题描述

我下载了一个对方的Jar程序,可以正常运行,但是我想修改程序里面的一些内容,比如其程序中有一个函数

public void setNumTarget(final long numTarget) {
    this.numTarget = numTarget;
}
我想让其变成类似这样的(当然这只是其中一处想要修改的地方,还有几处稍微复杂点的) 
public void setNumTarget(final long numTarget) {
    if (numTarget > 5000) {
        this.numTarget = numTarget;
    } else {
        this.numTarget = numTarget * 1000;
    }
}
现在我用luyten-0.5.4.exe 这个软件,将.class反编译成 .java文件后,按照我的要求修改了文件,再想调用javac xx.java 来编译成 .class文件时,提示一堆的错误,我看主要的原因是因为缺少其他的包.比如xx.java的内容如下:

package brs;
import javax.persistence.*;
import java.math.*;
import java.util.concurrent.atomic.*;
import brs.peer.*;
import brs.crypto.*;
import com.google.gson.*;
import brs.util.*;
import java.util.*;
import java.nio.*;
import org.slf4j.*;
......

问题出现的环境背景及自己尝试过哪些方法

比如其中的 import javax.persistence.*; 我知道是缺少jar包,我从网上下载了jar包,来一起编译,就没问题了,
但是其他的比如 import brs.peer.*; 这种引用的他自己内部的包,我没有这个jar文件. 和源码一起的只有对应的.class 文件,没有jar文件, 而且我看.class的名称,也能完全对应上
这种 我该怎么才能一起编译啊,求教!

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)
我目前的编译代码:
C:UsersAdministratorDesktopjava>javac -cp ejb3-persistence.jar;gson-1.7.jar
Block.java

你期待的结果是什么?实际看到的错误信息又是什么?

能够告知我如何处理这种编译呢,谢谢. 我基础有点差,如果能稍微详细点,不胜感激

报错类似如下内容:
Block.java:53: 错误: 找不到符号

private TransactionDb transactionDb() {
        ^

符号: 类 TransactionDb
位置: 类 Block
Logger.java:21: 错误: 找不到符号

boolean isTraceEnabled(final Marker p0);
                             ^

符号: 类 Marker
位置: 接口 Logger
Logger.java:23: 错误: 找不到符号

void trace(final Marker p0, final String p1);
                 ^

符号: 类 Marker
位置: 接口 Logger
Logger.java:25: 错误: 找不到符号

void trace(final Marker p0, final String p1, final Object p2);
阅读 2.3k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题