从终端类NotFoundException手动编译Java

从终端类NotFoundException手动编译Java,java,Java,我正在编写一个非常简单的学校作业,在其中一个任务中,我必须将变量从终端传递给as varargs。我试图定义完整的类路径,但它一直抛出相同的异常 我有一个文件结构,其中要运行的文件位于src/opgave1/Letters.java中 package opgave1; public class Letters { public static void main(String[] args) { voidLetter(args); }

我正在编写一个非常简单的学校作业,在其中一个任务中,我必须将变量从终端传递给as varargs。我试图定义完整的类路径,但它一直抛出相同的异常

我有一个文件结构,其中要运行的文件位于src/opgave1/Letters.java中

package opgave1;

public class Letters {
    
    public static void main(String[] args) {
        voidLetter(args);   
    }
    
    public static void voidLetter(String ... var) {
        System.out.println(var.length);
    }

}
从项目src文件夹中运行测试:

$>javac opgave1/Letters.java
$>java opgave1.Letters arg1 arg2 arg3
$ Error: Could not find or load main class opgave1.Letters
$ Caused by: java.lang.ClassNotFoundException: opgave1.Letters
我在stackoverflow上看到了类似的问题,但没有一个解决方案适合我。

编译如下:

javac -d . Letters.java
java opgave1.Letters arg1 arg2 arg3
并按如下方式运行:

javac -d . Letters.java
java opgave1.Letters arg1 arg2 arg3
输入以下命令以了解有关
javac
的更多信息:

javac
请注意,命令中的
表示当前目录

演示:

[~]: cd /Users/arvind.avinash/Documents/workspace-spring-tool-suite-4-4.4.0.RELEASE/AdHoc/src
[~/Documents/workspace-spring-tool-suite-4-4.4.0.RELEASE/AdHoc/src]: vi Letters.java
[~/Documents/workspace-spring-tool-suite-4-4.4.0.RELEASE/AdHoc/src]: javac -d . Letters.java
[~/Documents/workspace-spring-tool-suite-4-4.4.0.RELEASE/AdHoc/src]: java opgave1.Letters arg1 arg2 arg3
3

你是如何编译代码的?你需要先用
javac
编译代码,然后通过
java
执行编译后的代码(一个
.class
文件)和参数。您通常会有一个IDE,它可以在background@rouge严格来说不是这样-谢谢您的演练。当我从程序包dir“opgave1”运行javac命令时,它会创建一个名为opgave1的新文件夹,并在该文件夹中创建Letters.class。因此,现在应该对其进行编译。当我从src/opgave1路径运行java opgave1.Letters arg1 arg2 arg3时,仍然会得到ClassNotFoundException。我还试图在没有任何运气的情况下定义类路径。有什么想法吗?@LukasMittunAlexanderGuldstv-
当我从程序包dir“opgave1”
运行javac命令时,这就是问题的根本原因。如果你仔细检查我的答案,你会发现我已经从
src
文件夹运行了
javac
命令。如果有任何疑问/问题,请随时发表评论。如果我运行`javac-d。Letters.java`from./src它抛出错误:`file not found:Letters.java
。该文件在./src/opgave1/Letters.java中-如果我运行
javac-d。来自src的opgave1/Letters.java`it works。但是
java opgave1.Letters a b c
仍然返回该错误,它仍然无法解决该错误。我已经把任务交给了我小组里的另一个人,我正在和他一起做作业。Thanks@LukasMittunAlexanderGuldstv-因为您已经声明了
包opgave1
Letters.java
中,您不必将
Letters.java
放入
/src/opgave1
中。程序包,
opgave1
将由
javac
命令自动创建。将
Letters.java
放入
/src
中,并使用答案中所示的命令。