java - 寻找基于终端的 IDE 以通过 SSH 工作 - Java

标签 java maven gradle raspberry-pi ide

我花了很多时间寻找 Java IDE,但我找不到适合我的目的。我通常使用 Eclipse,因为它具有多语言功能和大量免费支持。我正在寻找类似的东西,但它需要与 SSH 一起使用。

我在我的旧树莓 B+ 上运行 Diet Pi。它适用于 Java 11(32 位)。我需要 Pi4J 项目,因为我要编写嵌入 Java 的程序。所以我需要一个可以处理 SSH 文本终端和 Maven/Gradle 支持的 IDE,因为我懒得自己查找 .jar 文件。

有谁知道这样的IDE?

最佳答案

由于还没有人回复,请寻找为 Java 定制的 emacs。它非常强大,但我自己永远无法克服复杂性。

https://www.gnu.org/software/emacs/

http://www.goldsborough.me/emacs,/java/2016/02/24/22-54-16-setting_up_emacs_for_java_development/

它应该已经在您的 RPI 上,或者应该是微不足道的 apt-get。

我相信很快就会有人发布更好的销售宣传。

VI 也可以是一个相当不错的代码编辑器,但同样需要一些定制和学习曲线——但如果你打算使用 Linux,只要继续学习足够的 vi 来编辑和保存文件,你将需要总有一天。

Eclipse over ssh(附加答案):

这不是世界上最简单的设置,但 ssh 是 unix 中最灵活的工具之一。您可以让它在您的计算机和远程计算机之间创建一个“管道”(如 VPN)。然后,您可以在此管道上运行 RDP,这将允许您运行 RPI 上的任何程序。

恐怕我已经有很长一段时间没有这样做了,也不知道这些选项,但是谷歌搜索“RDP over SSH”给了我一些好看的答案(使用 Putty 可以大大简化事情)。

安装驱动器并“本地”运行 eclipse(在您的桌面上)

您应该能够在本地系统上安装 RPI 驱动器并在那里使用 Eclipse。我用谷歌搜索了“Mount ssh”并找到了类似的东西:

https://www.digitalocean.com/community/tutorials/how-to-use-sshfs-to-mount-remote-file-systems-over-ssh

其中包括 Linux 和 Windows 解决方案。

如果您将整个项目目录放在“RPI”上,那么 jar 也应该在那里构建,您只需翻转到 PI 即可运行它。

这些 Linux 工具非常灵活——每个问题都有一百种解决方案。你只需要选择一个方向然后走。

我想我可以列出一些优点/缺点,只要我在这里输入:

基于控制台的解决方案:

  • vi 无处不在
  • 无论如何,你需要学习一些。
  • EMACS 很强大
  • 两者都很难设置和学习

  • 通过 SSH 在桌面上运行 PI:
  • 轻松设置
  • 没有什么新东西要学
  • 可能很慢(在 RPI 上运行的 IDE 加上网络延迟)
  • 不是非常灵活,它会起作用或不会。

  • 在桌面上安装 PI 驱动器:
  • 应该很直截了当
  • 性能合理(可能会减慢保存/重建项目)

  • 最后我想我应该提到第四个解决方案,在您的桌面上构建并复制(部署)到 RPI:
  • 这可能是“专业人士”的做法
  • 自从您的 IDE 在您的桌面上运行以来,最快速、最可靠的解决方案。
  • 使用 SCP 作为构建的一部分,将构建 Artifact “部署”到 RPI
  • 您可以使用“部署”和“流程”等很棒的企业用语
  • 可以将基于 SCP 的部署构建到您的 Gradle 脚本中
  • 部署过程可以自动解包/自动运行您的目标,因此您甚至不需要登录 PI
  • 最灵活的解决方案,您可以使用 SSH 和 Gradle 等工具做任何事情。

  • 其他提示:
  • 确保您使用私钥登录 ssh,切勿使用密码。
  • 学习 SSH 选项,有很多,而且几乎都很棒。
  • 摆脱密码后,您可以使用 ssh 将命令“发送”到 PI 而无需手动交互,这可以非常方便地将内容粘贴到您的 gradle 脚本中,例如“start app”、“kill app”……

  • 在那里,那应该让你忙一阵子。

    关于java - 寻找基于终端的 IDE 以通过 SSH 工作 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59380196/

    相关文章:

    java - 什么样的行为会导致异常中断?

    java - 将数据加载到表中

    java - Gradle(Java 以非零退出值 2 完成)

    gradle - 人为因素:快照网址返回404

    java - 如何以编程方式在根 gradle.build 文件中创建子项目

    java - Thymeleaf 显示具有动态列数的表格

    来自内部和中央存储库的 Maven 依赖项

    maven - 如何定义 Maven 的环境变量来定义本地存储库和包装器下载位置?

    maven - 扩展的 maven 插件忽略配置

    java - 从静态内部类中引用非静态变量