命令行运行java程序,引入的其他jar包时,解决方案

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了命令行运行java程序,引入的其他jar包时,解决方案相关的知识,希望对你有一定的参考价值。

原理说明
你是说这样
java class文件 -cp jar路径

如果java代码中包含非JDK中的类jar包中的类和方法, 又需要在cmd中加载运行,该jar包可以放在任何位置,只需要将该jar包的完整路径添加到系统环境变量CLASSPATH的后面就可以了. 参考技术A 例子:
java -classpath "./lib/mail.jar;./lib/skinlf.jar;./lib/MailChecker.jar;./lib/themepack.zip" com.sample.mailalert.pane.ClickPane

注意你的环境变量里面应该已经设置了JAVA_HOME
-classpath,类路径,包含你要使用到的所有jar或zip文件。
com.sample.mailalert.pane.ClickPane 是你的入口类本回答被提问者采纳
参考技术B java -cp .;A.jar B

A 是你的jar包,跟B放在一个文件夹就行。如果不在一个地方,就要指定了,如:
java -cp .;d:\A.jar B
B 就是你要执行的类
==================
原理:
java 是执行编译后的class的,这个不用多说,都知道...
-cp 就是引入外部 zip包或者jar包。
正确来说就相当于你在环境变量配置的classpath后的参数。
即:指定运行时需要的class。
其中 . 是在当前目录找 ; 以后后面的,是到你指定的目录找
==================
你看我给的例子了吗?我可没那么说。
第一行可是这么写的:java -cp .;A.jar B (A、B的解释在上面)
.; 也别给漏了

SpringBoot启动jar包时设置临时属性

什么是临时属性

临时属性是指在运行Spring Boot应用程序时,临时指定的一些属性值。临时属性值只对该次运行有效,在下次启动应用程序时将被重置。这种方式可以极大地方便我们测试不同的应用场景和配置,而不需要修改配置文件。

如何使用临时属性

Spring Boot提供了一种在启动时指定临时属性的方式,即使用命令行参数的方式。我们可以在使用java命令启动Jar包时添加--符号和属性名称来设置临时属性。例如,我们可以通过以下命令设置服务器端口号:

java -jar myapp.jar --server.port=8080

如果需要覆盖多个参数,可以使空格,它们分开,如下所示:

java -jar your-application.jar --server.port=8080 --spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase --spring.datasource.username=admin --spring.datasource.password=passw0rd

临属性的优先级

Spring Boot支持多种属性配置的方式,在指定属性时,需要注意它们的优先级。以下是各种属性配置的优先级顺序

  1. 命令行参数(Command Line Arguments):命令行参数具有最高优先级,可以用于覆盖任何其他属性的值。例如:--server.port=8000
  2. JNDI属性(JNDI properties):以在JNDI(Java Naming and Directory Interface)环境中单独配置的属性用于覆盖其他一些属性。
  3. Java系统属性(System properties):可以在JVM启动过程中通过-D选项单独指定的Java系统属性,例如: -Dspring.profiles.active=prod。由于其在应用程序启动之前就已加载,因此这些属性可以用于配置Spring的配置体系结构和其他一些早期初始化。
  4. 操作系统环境变量(OS environment variables):可以在操作系统级别配置的环境变量,例如: export spring_datasource_url=jdbc:mysql://localhost/mydatabase。
  5. application-profile.yml(application-profile.properties):Spring Boot会在classspath下搜索任何profile相关的配置文件,文件格式支持.properties和.yml两种,且不管使用哪种格式,都可以通过spring.profiles.active=xxx来指定当前应用程序的profile。例如: application-dev.yml。
  6. application.yml(application.properties):该文件是对所有profile的应用。粒度更大的属性配置, 例如:spring.application.name=boot-demo。

总结

Spring Boot的临时属性提供了一种方便快捷的方式,在运行时修改应用程序的运行配置。在实际使用中,我们可以灵活地根据不同场景使用临时属性来测试和验证应用程序。需要注意的是,属性配置的优先级是非常重要的,使用时需要认真考虑它们的覆盖关系。

以上是关于命令行运行java程序,引入的其他jar包时,解决方案的主要内容,如果未能解决你的问题,请参考以下文章

命令行运行java程序,引入的其他jar包时,如何解决?

cmd运行jar包时抓包方法

使用Java命令行方式导入第三方jar包来运行Java程序的命令

SpringBoot启动jar包时设置临时属性

java -jar命令运行jar包时指定外部依赖jar包 linxux or windows

启动 jar 包时指定 yml 文件