小编Chr*_*ett的帖子

junit中的java.lang.NoClassDefFoundError

我在junit测试代码中的java中收到此错误.我抬头看着网,它说我需要在类路径中添加junit.jar.

在Eclipse中,我已将它添加到Project Properties窗口的类路径中,但仍然会出现初始化错误.我该怎么办..?

这是错误的完整描述:

java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(Unknown Source)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$000(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at org.junit.internal.builders.JUnit4Builder.runnerForClass(JUnit4Builder.java:13)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
    at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:29)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
    at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:24)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.<init>(JUnit4TestReference.java:32)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestClassReference.<init>(JUnit4TestClassReference.java:25)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:41)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:31)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:452)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: java.lang.ClassNotFoundException: org.hamcrest.SelfDescribing
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown …
Run Code Online (Sandbox Code Playgroud)

java eclipse junit noclassdeffounderror

72
推荐指数
5
解决办法
14万
查看次数

在Java中将纳秒转换为毫秒和纳秒<999999

我想知道转换大纳秒值的最准确方法是毫秒和纳秒,纳秒的上限为999999.目标是结合纳秒和毫秒值以确保最大分辨率可以达到极限给出.这是为了与睡眠/等待方法和一些提供大纳秒值的其他外部库进行比较.

编辑:我的代码现在如下所示:

while (hasNS3Events()) {                                
    long delayNS = getNS3EventTSDelay();
    long delayMS = 0;
    if (delayNS <= 0) runOneNS3Event();
    else {
        try {
            if (delayNS > 999999) {
                delayMS = delayNS / 1000000;
                delayNS = delayNS % 1000000;
            }

            EVTLOCK.wait(delayMS, (int)delayNS);
        } catch (InterruptedException e) {

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

干杯,克里斯

java time milliseconds nanotime

25
推荐指数
3
解决办法
7万
查看次数

可重置的倒计时补丁

我需要的东西直接等同于CountDownLatch,但可以重置(保持线程安全!).我不能使用经典的同步结构,因为它们在这种情况下根本不起作用(复杂的锁定问题).目前,我正在创建许多CountDownLatch对象,每个对象都替换前一个对象.我相信这是在GC中的年轻一代(由于物体数量庞大).您可以看到使用下面的锁存器的代码(它java.net是ns-3网络模拟器接口的模拟的一部分).

一些想法可能是尝试CyclicBarrier(JDK5 +)或Phaser(JDK7)

我可以测试代码并回到找到解决此问题的任何人,因为我是唯一可以将其插入正在运行的系统中以查看发生的情况的人:)

/**
 *
 */
package kokunet;

import java.io.IOException;
import java.nio.channels.ClosedSelectorException;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import kokuks.IConnectionSocket;
import kokuks.KKSAddress;
import kokuks.KKSSocket;
import kokuks.KKSSocketListener;

/**
 * KSelector
 * @version 1.0
 * @author Chris Dennett
 */
public class KSelector extends SelectorImpl {
    // True if this Selector has been closed
    private volatile boolean closed = false;

    // Lock for close and cleanup
    final class CloseLock {} …
Run Code Online (Sandbox Code Playgroud)

java concurrency css-selectors countdownlatch cyclicbarrier

18
推荐指数
1
解决办法
1万
查看次数

现在使用HTML5是个好主意吗?

我知道它将在2012年"最终确定/正式化"(并且在2022年被赋予'推荐状态'),但我想知道现在使用HTML5制作网站是否是一个好主意.

一个简单的投资组合排序网站?鉴于大多数用户(大多数使用IE的用户)都不会支持它,尽管IE9(shock)将获得支持.

html html5

12
推荐指数
1
解决办法
829
查看次数

太空船模拟器引导计算机瞄准与同心指示器正方形

我正在与一些人一起制作一个3D太空交易游戏,而我被指派做的其中一件事就是制作一个引导计算机的"隧道",船只穿过,隧道由用户制成的正方形飞到目的地,随着用户离目的地越来越近.

只需渲染船前点的方块,因为这是用户可见的所有内容.在前往目的地的途中,船上的计算机应该在HUD上放置方块,这些方块代表你和目的地之间的空间中的固定点,这些点在距离很小并且随着点接近飞行器而变大.

指导广场的例子

我已经开始实现这个并且似乎无法解决这个问题,主要是使用对数(Math.log10(x)等等).我试图在"对数空间"中获得船位,以帮助找出在绘制正方形时从哪个索引开始,但事实上我只能到目的地工作的距离混淆了这个问题,尤其是当你考虑到方块的数量必须动态变化以确保它们保持固定在空间中的正确位置(即,在以对数方式变换之前,方块以200左右的间隔定位).

关于这一点,我在0.0d的开始和1.0d的结束之间有一个工作实现,虽然实现不太好.无论如何,问题基本上归结为1d性质.对于此问题,任何建议都会受到赞赏,包括可能达到相同效果的解决方法或解决方案.

边疆:精英2

(此外,还有一个显示此效果的Youtube视频:http://www.youtube.com/watch?v = 79F9Nj7GgfM&t = 3m5s)

干杯,
克里斯

编辑:改写整个问题.

编辑:新的测试台代码:

package st;

import java.awt.BorderLayout;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferStrategy;
import java.text.DecimalFormat;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.Timer;

public class StUI2 extends JFrame {
    public static final double DEG_TO_RAD = Math.PI / 180.0d;
    public static final DecimalFormat decimalFormat = new DecimalFormat("0.0000");

    public static …
Run Code Online (Sandbox Code Playgroud)

java math applet logarithm

11
推荐指数
1
解决办法
1008
查看次数

在Java中生成随机单词?

我写了一个程序,可以对单词进行排序并确定任何字谜.我想生成一个随机字符串数组,以便我可以测试我的方法的运行时.

public static String[] generateRandomWords(int numberOfWords){
String[] randomStrings = new String[numberOfWords];
Random random = Random();
    return null;
}
Run Code Online (Sandbox Code Playgroud)

(方法存根)

我只想要长度为1-10的小写单词.我读了一些关于生成随机数,然后转换为char或其他东西的东西,但我并不完全理解.如果有人可以告诉我如何生成随机单词,那么我应该能够轻松地使用for循环将单词插入到数组中.谢谢!

java arrays random words

10
推荐指数
3
解决办法
6万
查看次数

用于SQL数据定义语言的Java API

在我编写之前,是否有用于操作数据库的Java API.就像一个面向对象的包装器java.sql.DatabaseMetaData,支持类似的东西Schema.createTable(name, columns)

显然,正确的SQL语句应该在后台基于正在使用的DB执行.

我对用于执行DDL语句的API特别感兴趣.

java sql database ddl

10
推荐指数
1
解决办法
2481
查看次数

javac:编译一个使用其他类的.java文件

我有3个java文件

a.java  
b.java  
c.java  
Run Code Online (Sandbox Code Playgroud)

我设法为a和b使用生成.class文件

javac example/a.java  
javac example/b.java  
Run Code Online (Sandbox Code Playgroud)

但是当我为c.java做同样的事情时,我得到错误错误:找不到符号b和c

关于如何解决这个问题的任何建议?

所有java文件都在同一个文件夹中

java compiler-errors

9
推荐指数
1
解决办法
2万
查看次数

我可以禁用FF3后退按钮缓存吗?

我发现当按下后退按钮时,即使我发送以下标题,它也会从浏览器缓存中获取上一页:

Test1.aspx

Server              ASP.NET Development Server/9.0.0.0
Date         Wed, 24 Mar 2010 17:49:40 GMT
X-AspNet-Version 2.0.50727
Location         Test2.aspx
Cache-Control no-cache, no-store
Pragma         no-cache
Expires         -1
Content-Type text/html; charset=utf-8
Content-Length 189
Connection         Close
Run Code Online (Sandbox Code Playgroud)

html firefox caching button

7
推荐指数
1
解决办法
4870
查看次数

垃圾收集和反射

我想知道当你有一个带有反射的类来获取一些字段值时垃圾收集是如何工作的.JVM如何知道这些字段引用的值是可访问的,因此当正式语言语法不用于访问它们时,目前不符合垃圾收集的条件?

一个表示问题的小片段(尽管这里过分强调反思):

/**
 *
 */

import java.lang.reflect.Field;

public class B {
    protected B previous = null, next = null;

    /**
     *
     */
    public B(B from) {
        this.previous = from;
    }

    public void transition(B to) {
        this.next = to;
    }

    public B next() {
        try {
            Field f = getClass().getField("next");
            f.setAccessible(true);
            try {
                return (B)f.get(this);
            } finally {
                f.setAccessible(false);
            }
        } catch (Exception e) {
            throw new IllegalStateException(e);
        }
    }

    public B previous() {
        try {
            Field f = getClass().getField("previous");
            f.setAccessible(true); …
Run Code Online (Sandbox Code Playgroud)

java reflection garbage-collection memory-leaks

7
推荐指数
2
解决办法
1907
查看次数