首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用JUnit文件和相应的命令行工具进行基本的java 4安装需要帮助

使用JUnit文件和相应的命令行工具进行基本的java 4安装需要帮助
EN

Stack Overflow用户
提问于 2012-04-11 12:05:17
回答 2查看 509关注 0票数 0

我正在尝试使用java文件和相应的命令行工具进行基本的JUnit 4设置(在我转到eclipse之前-我怀疑它会更容易开始工作,但我仍然希望首先使用这种方法),下面是不言而喻的输入/输出,我认为它会解决问题:

代码语言:javascript
运行
复制
deniz@debian:~$ cd /tmp/temp2/src/com/example/example
deniz@debian:/tmp/temp2/src/com/example/example$ echo $CLASSPATH
.:/home/deniz/CLASSPATH_DIR:/usr/share/java/jogl.jar:/usr/share/java/gluegen-rt.jar:/usr/share/java/junit4.jar
deniz@debian:/tmp/temp2/src/com/example/example$ ls -l /usr/share/java/junit4.jar
lrwxrwxrwx 1 root root 16 Feb  8  2011 /usr/share/java/junit4.jar -> junit4-4.8.2.jar
deniz@debian:/tmp/temp2/src/com/example/example$ ls
MathUtils.java  MathUtilsTest.java
deniz@debian:/tmp/temp2/src/com/example/example$ javac ./*.java
deniz@debian:/tmp/temp2/src/com/example/example$ ls
MathUtils.class  MathUtils.java  MathUtilsTest.class  MathUtilsTest.java
deniz@debian:/tmp/temp2/src/com/example/example$ java MathUtils
Exception in thread "main" java.lang.NoClassDefFoundError: MathUtils (wrong name: com/example/example/MathUtils)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:334)
Could not find the main class: MathUtils. Program will exit.
deniz@debian:/tmp/temp2/src/com/example/example$ java MathUtilsTest
Exception in thread "main" java.lang.NoClassDefFoundError: MathUtilsTest (wrong name: com/example/example/MathUtilsTest)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:334)
Could not find the main class: MathUtilsTest. Program will exit.
deniz@debian:/tmp/temp2/src/com/example/example$ cat MathUtils.java
package com.example.example;

public class MathUtils
{
    public static double multiply(double a, double b)
    {
        return a * b;
    }

    public static void main(String[] args)
    {
        double num = multiply(4.0,-5.0);
        System.out.println("The number is: " + num);
    }
}
deniz@debian:/tmp/temp2/src/com/example/example$ cat MathUtilsTest.java 
package com.example.example;

import org.junit.Test;

import static org.junit.Assert.*;

public class MathUtilsTest
{
    @Test
    public void testMultiply()
    {
        double a = 5.0;
        double b = -4.0;

        double expected = -20.0;
        double result = MathUtils.multiply(a, b);

        assertEquals(expected, result, 0.00001);
    }
}
deniz@debian:/tmp/temp2/src/com/example/example$

有人能告诉我这是怎么回事吗?怎么解决这个问题?甚至MathUtils类也不能工作,在我看来它做得很好;它定义了包并有一个main方法。

如果需要比我提供的更多的信息,请直接问。

如果我犯了任何愚蠢的错误和/或假设,我道歉,因为我在输入这篇文章时非常疲惫;尽管如此,请纠正我。

任何帮助都将不胜感激!提前感谢!

EN

回答 2

Stack Overflow用户

发布于 2012-04-11 15:56:44

您的MathUtilsTest有一个包声明:

代码语言:javascript
运行
复制
package com.example.example;

由于各种原因,这意味着您的物理文件必须在com/example/example/MathsUtilsTest中。因此,您需要从/tmp/temp2/src/运行java。那么java应该能够正确地找到这些类。

最好总是从该目录运行javac。

票数 2
EN

Stack Overflow用户

发布于 2012-04-11 16:00:58

第一次尝试:使用完整的类名(带有包)

java com.example.example.MathUtils

第二次尝试:添加类路径

java -cp . com.example.example.MathUtils

注意directory structure

要运行测试,您需要遵循Running tests中的说明

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10099649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档