java linux 文件上传到服务器,将本地Java程序发布到Linux服务器上

注:记录自己在发布日志分析程序中遇到的问题

1.将程序导出成jar包,执行java -jar XXX.jar 即可运行

Export》JAR file》Next...》选择Main Class作为程序入口

2.第三方引用问题

eclipse在打包时不会将第三方jar包一并打包,如数据库驱动器。解决办法可用fatjar插件,但fatjar不适应版本较高的eclipse。但我们还可以直接将第三方jar包传到服务器上,放在程序同一目录下,然后在MANIFEST.MF文件中指明classpath.

365789.html

365789.html

87f737fbc04c7636a8cb7300497ccc98.png

3.找不到主方法

有可能是打包的时候没有后指定Main Class。

也有可能是选择的Java compiler版本太高,与服务器上编译环境的不相容。降低版本即可。

b76fc0ab39ed5d1bcc4fc886322d6dad.png

4.把文件传到Linux服务器

下载pscp.exe,在cmd窗口进入pscp目录下,即可使用pscp指令传输文件。

da483344fb3b0e81712a9dd533db6c7c.png

5.如何让程序定时自动执行。

使用Linux定时器crontab。可以将指令存入.sh脚本中,然后设置定时器。

6.设置定时器后,.sh脚本确实已经执行,但是无法执行脚本中运行jar的指令。

环境变量问题。在.sh中设置环境变量。

在Linux服务器中查询JAVA_HOME:echo $JAVA_HOME

export JAVA_HOME=/data/web/jdk

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar

export JRE_HOME=$JAVA_HOME/jre

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的Java代码示例,可以将本地文件上传Linux服务器上: ```java import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.Properties; import com.jcraft.jsch.Channel; import com.jcraft.jsch.ChannelSftp; import com.jcraft.jsch.JSch; import com.jcraft.jsch.Session; public class FileUploader { public static void main(String[] args) { String localFilePath = "/path/to/local/file"; String remoteFilePath = "/path/to/remote/file"; String remoteHost = "remote_host"; String remoteUser = "remote_user"; String remotePassword = "remote_password"; int remotePort = 22; try { uploadFile(localFilePath, remoteFilePath, remoteHost, remoteUser, remotePassword, remotePort); System.out.println("File uploaded successfully!"); } catch (Exception e) { e.printStackTrace(); } } public static void uploadFile(String localFilePath, String remoteFilePath, String remoteHost, String remoteUser, String remotePassword, int remotePort) throws Exception { JSch jsch = new JSch(); Session session = jsch.getSession(remoteUser, remoteHost, remotePort); session.setPassword(remotePassword); Properties config = new Properties(); config.put("StrictHostKeyChecking", "no"); session.setConfig(config); session.connect(); Channel channel = session.openChannel("sftp"); channel.connect(); ChannelSftp sftpChannel = (ChannelSftp) channel; File localFile = new File(localFilePath); InputStream inputStream = new FileInputStream(localFile); sftpChannel.put(inputStream, remoteFilePath); sftpChannel.exit(); session.disconnect(); } } ``` 需要使用到JSch库,可以在Maven中添加以下依赖: ```xml <dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1.55</version> </dependency> ``` 其中,`localFilePath`表示本地文件的路径,`remoteFilePath`表示远程服务器上保存文件的路径,`remoteHost`表示远程服务器的IP地址,`remoteUser`和`remotePassword`表示登录远程服务器的用户名和密码,`remotePort`表示远程服务器的SSH端口号。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值