1. 如果java源文件没有使用package xxx.xxxx, 则可以在源文件目录里面使用javac和java进行编译和运行。
C:\Users\jianqiang\Documents>javac App.java
C:\Users\jianqiang\Documents>java App
please input several numbers, every number need a enter after
input number -9999 to end input
2. 如果java源文件使用了package xxx.xxx, 则需要在包所在的顶层目录里面进行编译和执行,例如:包名为org.wjq
C:\javastudy\testjar\src\main\java>javac org\wjq\App.java
C:\javastudy\testjar\src\main\java>java org.wjq.App
hello
3. 如果是maven项目,如果要打可执行的包,需要使用maven-shade-plugin
可以创建一个可执行的jar,要使用这个插件,需要在pom.xml
中声明它:
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
...
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
自定义插件往往需要一些配置,例如,maven-shade-plugin
需要指定Java程序的入口,它的配置是:
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.itranswarp.learnjava.Main</mainClass>
</transformer>
</transformers>
</configuration>
4. 如果是sprintboot:则需要.在pom.xml文件中插入
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>