独立Java项目vs使用Spark的代码

m4pnthwp  于 11个月前  发布在  Apache
关注(0)|答案(2)|浏览(122)

我希望在一个独立的VS代码Java项目中使用Spark(即没有maven或gradle)。
我已经从https://spark.apache.org/downloads.html下载了库,将Jars文件夹中的内容解压并复制到vs code lib文件夹中。
我可以看到spark-core_2.12-3.4.1.jar沿着在我引用的库中的所有其他jar。但是,如果我使用import static spark.Spark.*; VS代码,则无法解决错误导入Spark。
我想我错过了一些非常简单的东西,但我没有得到任何地方,每个人似乎都在使用Maven。

gjmwrych

gjmwrych1#

Java本身不从任何特殊位置加载任何库,除了从 rt.jar 加载基本库类。当您运行纯Java应用程序时,您需要给予要搜索类的所有目录和zip文件的列表,以及主类的名称。这组搜索位置称为 classpath
像Maven或Gradle这样的工具简化了库的选择和下载,但它们也起到了另一个重要的作用:它们告诉你编辑器(VC,IntelliJ,Netbeans -无论什么)-什么应该在类路径上:哪些类可用。
如果你想创建一个Spark应用程序来手动编译,你需要:

  • 下载Spark需要的所有jar。这可能不仅意味着Spark,还意味着Spark本身需要的库。
  • 定义你的类路径,也就是下载的所有jar文件的完整路径列表(不仅仅是存储jar文件的目录,而是其中的jar文件列表)和你的代码。
  • 在VC中找到一个允许您手动设置类路径的设置;我无法帮助您,但在IntelliJ,Eclipse和Netbeans中存在这样的设置-所以我猜它也可能存在于VC中。

如果我必须这样做,我会首先创建一个最小的,一次性的Maven项目,依赖于Spark,没有任何代码。然后在项目的根目录中运行:

mvn dependency:copy-dependencies

这将把Spark和其他需要的东西都下载到target/dependencies目录中。我会把它复制出来,删除不再需要的项目。
然后,我会创建一个字符串,列出依赖目录中所有与:连接的jar文件,比如dependencies/a.jar:dependencies/b.jar:dependencies/c.jar.
然后,我还可以编写一个Java类,并通过编写如下代码来编译它:

javac -cp dependencies/a.jar:dependencies/b.jar:...:depenendencies/z.jar MyClassToCompile.java

运行它:

java -cp dependencies/a.jar:dependencies/b.jar:...:depenendencies/z.jar MyClassToCompile

请注意,上面的例子假设MyClassToCompile在默认包中(否则您需要在第一行附加构成包的目录,在第二行附加类的完整限定名)。

kqlmhetl

kqlmhetl2#

您应该通过JAVA PROJECTS面板中Referenced Libraries右侧的加号添加其他jar。

  • https://code.visualstudio.com/docs/java/java-project#_manage-dependencies-for-unmanaged-folder

相关问题