为了账号安全,请及时绑定邮箱和手机立即绑定

使用具有依赖项 fething 的 oneline 命令行调用运行简单的单文件 java 程序

使用具有依赖项 fething 的 oneline 命令行调用运行简单的单文件 java 程序

MM们 2021-11-24 20:11:32
您好,我想运行一个包含在一个文件中的简单 Java 程序。 javac foo.java && java foo由于必须下载外部依赖项,因此不适合。你知道一种简单的方法来运行它作为单行或以某种理智的方式获取依赖项,比如npm install dep或pip install dep?
查看完整描述

3 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

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

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

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

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

如果你只想要一个独立的脚本,那么你可以看看使用 Groovy


查看完整回答
反对 回复 2021-11-24
?
米脂

TA贡献1836条经验 获得超3个赞

Java 有一个名为 Maven https://maven.apache.org/的 npm 等价物,使用 Maven 您可以在mvn clean install设置后执行此操作。


查看完整回答
反对 回复 2021-11-24
?
炎炎设计

TA贡献1808条经验 获得超4个赞

其他人给了你很好但不完整的答案。所以,我会把它放在一起并为你澄清。

首先确定你的dependencyies 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

总而言之,这是您的oneliner:

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


查看完整回答
反对 回复 2021-11-24
  • 3 回答
  • 0 关注
  • 112 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信