GitHub中支持Maven的Java项目未在mscode中生成
第一次反馈后更新。非常感谢你。我确实读了What does “Could not find or load main class” mean? Post和参考的文件。我现在知道两者的区别了。类和Jar文件。我真的很需要它,并且想知道为什么这不是任何Java课程都会涉及的第一件事。Steve的帖子太棒了,在成功执行该文件后,我想知道我们如何在此基础上进行构建。我不确定史蒂夫是否会看到这些内容,但我想我会尝试,因为这将建立在他的尝试之上,这对我帮助很大。我认为Steve的帖子缺少的是一个普通的项目,它可以提供一个更清晰的基线,因为每个帖子都是从他们自己创建上下文的尝试开始的。我想我会尝试测试和学习不同的相对路径如何影响Java的类路径思想。鉴于这个项目是一个公共项目,人们可以下载并作为基线使用。同时,如果能对我的发现进行验证和/或纠正,那将是一件好事。 Steve的帖子缺少的另一项内容是使用正斜杠和反斜杠,有时不得不将它们组合起来编译和执行代码。以下是我的发现: 1-我需要安装Maven。令我惊讶的是,为我的IDE安装Maven插件并不意味着我拥有Maven。我确信它连接了很多非常复杂的目录,但是如果能在某个地方得到通知,你需要安装Maven,那就太好了
2-这起了作用: 以下是如何在此项目中运行已编译源文件的示例:
C:\Users\usr\source\Java>java -cp c:/Users/usr/source/Java/algs4/target/algs4-1.0.0.0.jar edu.princeton.cs.algs4.BinarySearch c:/Users/usr/source/Java/algs4/target/tinyW.txt < c:/Users/usr/source/Java/algs4/target/tinyT.txt
50
99
13
3-Steve提到了允许使用斜杠而不是“.”。我不知道这是在哪里,如何;我试着用“.”失败了
4-这起作用了
C:\Users\usr\source\Java>java -cp algs4/target/algs4-1.0.0.0.jar edu.princeton.cs.algs4.BinarySearch c:/Users/usr/source/Java/algs4/target/tinyW.txt < c:/Users/usr/source/Java/algs4/target/tinyT.txt
50
99
13
但是这一个没有,正如预期的那样,(我从目录路径中删除了alg4)。我想知道是否可以安全地假设目录名和源文件之间存在重叠?那是某种关键的东西吗
C:\Users\usr\source\Java>java -cp /target/algs4-1.0.0.0.jar edu.princeton.cs.algs4.BinarySearch c:/Users/usr/source/Java/algs4/target/tinyW.txt < c:/Users/usr/source/Java/algs4/target/tinyT.txt
Error: Could not find or load main class edu.princeton.cs.algs4.BinarySearch
5-当涉及到输入参数时,我想这些参数被认为是依赖项,不太方便,我可以删除磁盘名,因为C:\被认为是默认的,但似乎就是这样
C:\Users\usr\source\Java>java -cp algs4/target/algs4-1.0.0.0.jar edu.princeton.cs.algs4.BinarySearch c:/Users/usr/source/Java/algs4/target/tinyW.txt < /Users/usr/source/Java/algs4/target/tinyT.txt
50
99
13
C:\Users\usr\source\Java>java -cp algs4/target/algs4-1.0.0.0.jar edu.princeton.cs.algs4.BinarySearch c:/Users/usr/source/Java/algs4/target/tinyW.txt < Users/usr/source/Java/algs4/target/tinyT.txt
The system cannot find the path specified.
C:\Users\usr\source\Java>java -cp algs4/target/algs4-1.0.0.0.jar edu.princeton.cs.algs4.BinarySearch c:/Users/usr/source/Java/algs4/target/tinyW.txt < /usr/source/Java/algs4/target/tinyT.txt
The system cannot find the path specified.
C:\Users\usr\source\Java>
我从GitHub下载了一个maven项目,并试图通过打开BinarySearch使用mscode进行构建。java并单击main()顶部的“run”,但由于文件未找到错误,无法在mscode中运行文件。但是所提到的依赖项位于同一目录和命名空间中。 这是我得到的信息:
c:\Users\usr\Documents\JavaSource\algs4\src\main\java\edu\princeton\cs\algs4>cd c:\Users\usr\Documents\JavaSource\algs4\src\main\java\edu\princeton\cs\algs4 && C:\Users\usr\.vscode\extensions\vscjava.vscode-java-debug-0.23.0\scripts\launcher.bat C:\Users\usr\AppData\Local\Programs\AdoptOpenJDK\\bin\java -Dfile.encoding=UTF-8 -cp C:\Users\usr\AppData\Roaming\Code\User\workspaceStorage\cc8ab34620dad8d5d783976fbc70bb1a\redhat.java\jdt_ws\jdt.ls-java-project\bin edu.princeton.cs.algs4.BinarySearch
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
In cannot be resolved to a type
In cannot be resolved to a type
StdOut cannot be resolved
at edu.princeton.cs.algs4.BinarySearch.main(BinarySearch.java:95)
我还尝试将args传递到该文件
# 1 楼答案
看起来您正试图从https://github.com/kevin-wayne/algs4/存储库运行
BinarySearch
根据您的屏幕截图,您很可能没有将Maven项目正确导入Visual Studio代码,因为错误与项目编译和运行时类路径有关。看看.java vs .class question,了解源代码和字节代码之间的区别
看看official documentation并确保您拥有Maven integration plugin installed