Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java NoSuchMethodError:工具.计时器。<;初始化>;(J) 五_Java_Multithreading_Exception_Init - Fatal编程技术网

Java NoSuchMethodError:工具.计时器。<;初始化>;(J) 五

Java NoSuchMethodError:工具.计时器。<;初始化>;(J) 五,java,multithreading,exception,init,Java,Multithreading,Exception,Init,我有一个定时器类和一个测试类来测试这个定时器: package tools; public class Timer extends Thread { public boolean isRunning = true; private long timeout = 0; public Timer(long aTimeout) { timeout = aTimeout; } // Run the Thread public

我有一个定时器类和一个测试类来测试这个定时器:

package tools;

public class Timer extends Thread 
{
    public boolean isRunning = true;
    private long timeout = 0;

    public Timer(long aTimeout)
    {
        timeout = aTimeout;
    }

    // Run the Thread
    public void run()
    {
        int i = 1000;
        while(i <= timeout)
        {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            i = i + 1000;
        }
        isRunning = false;
    }
}
在Eclipse中,这很有效。当我将其包含到Solaris服务器上的另一个项目中时,会出现以下异常:

Exception in thread "main" java.lang.NoSuchMethodError: tools.Timer.<init>(J)V 
线程“main”java.lang.NoSuchMethodError中出现异常:tools.Timer。(J)V
我在谷歌上搜索了一下,但我找不到任何答案——为什么这不起作用?干杯,蒂姆。

你在构建这样的计时器:

Timer myTimer = new Timer();
您的构造函数声明是:

public Timer(long aTimeout)

很明显,不是吗?您必须像
new timer(1234)
那样构造计时器,或者向其添加无参数构造函数。

您正在像这样构造计时器:

Timer myTimer = new Timer();
您的构造函数声明是:

public Timer(long aTimeout)

很明显,不是吗?您必须像
new timer(1234)
那样构造计时器,或者向其添加无参数构造函数。

显示的代码甚至不应该编译,因为您正在调用
timer()
默认构造函数,但是
timer
只有一个参数化构造函数:
公共计时器(long-aTimeout)


因此,要么你没有向我们展示一个,要么你对“工作良好”的定义与我们的定义大不相同;-)

您显示的代码甚至不应该编译,因为您正在调用
Timer()
默认构造函数,但是
Timer
只有一个参数化构造函数:
public Timer(long aTimeout)


因此,要么你没有向我们展示一个,要么你对“工作良好”的定义与我们的定义大不相同;-)

抱歉,我编辑了它-现在有一个值,我第一次忘记了它(旧的剪贴板值)。我做了另一个测试,现在可以工作了-我将超时值硬编码为10000,并删除了构造函数。是否是缺少默认构造函数导致了此错误?或者更确切地说是缺少构造函数参数。取决于您的透视图。@Tim,如果调用代码中有参数,原因可能是类版本不匹配?如果部署到服务器的
Timer
类中的构造函数与客户端代码中调用的构造函数不匹配。您好,则该类匹配,并且构造函数是正确的。我还是有问题。我只是想了解它:)抱歉,我编辑了它-现在有一个值,我第一次忘记了它(旧的剪贴板值)。我做了另一个测试,现在可以工作了-我硬编码超时值为10000,并删除了构造函数。是否是缺少默认构造函数导致了此错误?或者更确切地说是缺少构造函数参数。取决于您的透视图。@Tim,如果调用代码中有参数,原因可能是类版本不匹配?如果部署到服务器的
Timer
类中的构造函数与客户端代码中调用的构造函数不匹配。您好,则该类匹配,并且构造函数是正确的。我还是有问题。我只是想理解:)