使用具有依赖关系的oneline comandline调用运行简单的一个文件Java程序

时间:2018-10-18 15:20:09

标签: java

您好,我想运行一个文件中包含的简单Java程序。 由于必须下载外部依赖项,因此javac foo.java && java foo不适合。您知道一种简单的方式将其作为单行代码或以npm install deppip install dep之类的理智方式获取依赖项吗?

3 个答案:

答案 0 :(得分:1)

如果您具有外部依赖项,则需要使用它们来编译代码。

javac -cp .:/path/to/*.jar foo.java

然后,您可以尝试运行您的类文件,再次使用相同的类路径来包含所需的其他类

通常,尽管Java应用程序是作为JAR文件而不是类文件打包和分发的。

如果只需要一个独立的脚本,则可以考虑使用Groovy

答案 1 :(得分:0)

Java有一个名为Maven https://maven.apache.org/的npm等同于maven,一旦安装完成,您就可以执行mvn clean install

答案 2 :(得分:0)

其他人给了您很好但不完整的答案。所以,我会整理一下并为您澄清。

首先确定您对https://mvnrepository.com的依赖性,然后为每个依赖性调用:mvn -DgroupId=goo -DartifactId=goo -Dversion=1.0 dependency:getmvn -Dartifact=goo:goo:1.0 dependency:get

您的所有依赖项现在都位于$HOME/.m2中,因此您可以列出使用find $HOME/.m2 -name "*.jar" -printf ":%p"正确格式化的依赖项。

要使用其编译程序,请调用javac -cp .$(find $HOME/.m2 -name "*.jar" -printf ":%p") foo.java

并使用java -cp .$(find $HOME/.m2 -name "*.jar" -printf ":%p") foo

运行它

总而言之,这是你的单人纸:

mvn -DgroupId=goo -DartifactId=goo -Dversion=1.0 dependency:get \
&& javac -cp .$(find $HOME/.m2 -name "*.jar" -printf ":%p") foo.java \
&& java -cp .$(find $HOME/.m2 -name "*.jar" -printf ":%p") foo