在linux服务器上运行java程序方式:
1.直接通过javac xxx.java运行java文件,在java xxx运行.class文件
2.利用java -cp .:/xxx/xxx/xxx/xxx.jar:/xxx/xxx/xxx/xxx.jar /xxx/xxx/xxx.java 可以获取到一个关联了依赖包的.class文件
3.打jar包,利用java -cp xxx.jar Test,执行jar包的Test类
采用方式2时,我采坑了报错 A JNI error has occurred, please check your installation and try again
Excepetion in thread "main" java.lang.NoClassDefFoundError:com/jcraft/jsch/SftpException
原因:执行的java文件和外部依赖jar关联失败了,
解决方案:后面我采用了方式3,直接打jar包,jar包中需要把依赖包也打上打jar包的方式可以自行百度,
我采用的maven,在pom.xml中加上下面的依赖即可,打好包之后,将jar包放到服务器,在当前目录执行java -cp xxx.jar Test 命令(注意jar包路径和当前执行命令的路劲)
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<!-- 此处指定main方法入口的class -->
<mainClass>com.xxx.uploadFile</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>assembly</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>