我需要使用sshpassJava 代码通过 SSH 启动远程命令。
如果我手动输入控制台:
ssh -p 22 user@ipaddress mplayer '/media/data/myFavouriteSong.mp3'
Run Code Online (Sandbox Code Playgroud)
完美运行,但要求输入密码。所以我尝试运行sshpass:
sshpass -p mypass ssh -p 22 user@ipaddress mplayer '/media/data/myFavouriteSong.mp3'
sshpass -p mypass ssh -l user@ipaddress mplayer '/media/data/myFavouriteSong.mp3'
sshpass -p mypass ssh -t user@ipaddress mplayer '/media/data/myFavouriteSong.mp3'
sshpass -p mypass ssh user@ipaddress echo 'OK'
Run Code Online (Sandbox Code Playgroud)
他们都没有工作。
我在 Ubuntu MATE 18.04 上。我尝试过的所有 jnlp 应用程序都会出现执行错误。经过检查,Java 中似乎缺少一些库。
于是我把所有东西都删了,重新开始安装,发现apt-get install icedtea-8-plugin依赖:
ca-certificates-java default-jre default-jre-headless icedtea-8-plugin
icedtea-netx librhino-java libtagsoup-java openjdk-11-jre
openjdk-11-jre-headless
Run Code Online (Sandbox Code Playgroud)
虽然预计依赖于 openjdk-8,而不是 11(根据 ubuntu 软件包网站)。我怀疑 jdk-11 不包含一些为此所需的库。
我的猜测是我安装了一些 PPA,现在会产生这种情况,其中 jdk-11 是比任何 jdk-8 包都更新的选择。那么,我怎样才能实现使用 openjdk-8 而不是 11 安装了 icedtea-8 呢?
编辑:这是我尝试从 Firefox 启动 jnlp 应用程序时的输出:
Denying permission: ("java.lang.RuntimePermission" "accessClassInPackage.sun.util.resources")
net.sourceforge.jnlp.LaunchException: Fatal: Launch Error: Could not launch JNLP file. The application has not been initialized, for more information execute javaws/browser from the command line and send a bug report. at net.sourceforge.jnlp.Launcher.launchApplication(Launcher.java:582)
... …Run Code Online (Sandbox Code Playgroud) 我想安装 GCC 编译器 4.7 以使用 C++11 功能。我在互联网上寻找说明,我在几个网站上找到了这些步骤:
sudo add-apt-repository ppa:Ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.7 g++-4.7
Run Code Online (Sandbox Code Playgroud)
问题是我的控制台在添加 ppa 时冻结了。
起初我以为是因为使用了旧的 Ubuntu 版本 (11.04)。所以我已经升级到 11.10,然后是 12.04,一切似乎都正常。但仍然有同样的问题。
如何解决这个问题?
我想要一个脚本来直观地警告我系统上的用户他们的密码即将过期。我在这里找到了这个。
问题是,该脚本的作者通过将日期转换为秒、减去秒并将其传递为天来获取密码过期的天数。
问题是我的系统将这些日期输出为“2018 年 8 月前”(今天)。如果我像作者一样坚持使用 date 命令将日期转换为秒,则会收到错误:无效日期“2018 年 8 月 8 日之前”。
有什么帮助吗?
这是完整的脚本:
#! /bin/bash
# Issue a desktop notification if the user password is about to expire
# Uses the "chage" command frome the "passwd" package (likely installed)
# Best added to the session startup scripts
# get password data in array
saveIFS=$IFS
IFS=$'\n'
chagedata=( $(chage -l $USER | cut -d ':' -f 2 | cut -d " " -f 2-) )
IFS=$saveIFS
# obtain …Run Code Online (Sandbox Code Playgroud)