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