V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
chaleaoch
V2EX  ›  Java

想问一下 Java 大佬的开发环境, 对 Linux 的依赖大嘛?

  •  
  •   chaleaoch · 2021-08-29 13:02:39 +08:00 · 4617 次点击
    这是一个创建于 969 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我指开发环境

    用 windows 的 IDEA?
    还是 Linux 的 IDEA?
    还是其他 IDE?
    还是最近新出的 Code With Me?
    还是 vscode + remote?

    python 和 Go 都会遇到 windows 下不完美的情况.
    譬如 Celery 现在已经不支持 windows 平台.
    GO 的一些三方模块依赖 cgo, 需要额外安装 mingw.

    不知道 Java 是否有类似情况?

    谢谢.
    29 条回复    2021-08-30 12:39:49 +08:00
    wxw752
        1
    wxw752  
       2021-08-29 13:06:44 +08:00
    没有
    dethan
        2
    dethan  
       2021-08-29 13:08:24 +08:00 via Android   ❤️ 3
    可以做到 0 依赖
    chendy
        3
    chendy  
       2021-08-29 13:17:53 +08:00   ❤️ 1
    jvm 表示哪都一样
    除非你要搞 jni jna 啥的
    Junzhou
        4
    Junzhou  
       2021-08-29 14:22:13 +08:00
    和你用啥平台的 idea 没关系。
    zbw0414
        5
    zbw0414  
       2021-08-29 16:47:07 +08:00
    我现在基本上都是用 projector ( jetbrains 家的远程工具,正如其名 [投影仪] ),确实如你所说,cgo 交叉编译配置太繁琐。
    前阵子申请换成了 mba m1,配合公司 64c256g 的服务器还是很香的。
    realpg
        6
    realpg  
       2021-08-29 16:55:10 +08:00   ❤️ 1
    国内 90%的 JAVA 开发者,开发电脑不是 LINUX
    ila
        7
    ila  
       2021-08-29 17:39:49 +08:00 via Android
    @realpg 穷让我用 linux 开发,同样 8g 内存,linux 下跑的更加顺畅
    realkenshinji
        8
    realkenshinji  
       2021-08-29 17:43:04 +08:00 via iPhone
    我们公司 CTO 用 linux + emacs
    Cbdy
        9
    Cbdy  
       2021-08-29 17:45:51 +08:00   ❤️ 1
    Java 的话,如果不用 JNI 之类的,只要有 JDK 就可以作开发了
    Jooooooooo
        10
    Jooooooooo  
       2021-08-29 17:47:45 +08:00
    你用 txt 都能写
    lap510200
        11
    lap510200  
       2021-08-29 18:02:50 +08:00   ❤️ 2
    如果你用的是 mac 我不清楚,咱的 mac 吃灰中,用的公司电脑,主流都是 windows+idea
    efaun
        12
    efaun  
       2021-08-29 19:33:33 +08:00   ❤️ 1
    一直在用 win 环境做开发,不太能理解用 mac 或者 linux 开发的需求,装些环境都要自己编译,有那时间用 win 安装 exe 摸个鱼不好吗
    x340
        13
    x340  
       2021-08-29 19:50:27 +08:00
    看自己喜欢呗。
    WebKit
        14
    WebKit  
       2021-08-29 20:36:20 +08:00 via Android
    @efaun 不需要啊。。。
    kwanzaa
        15
    kwanzaa  
       2021-08-29 21:22:20 +08:00
    你在试图找打 JVM 脸的方法哈哈哈哈
    chaleaoch
        16
    chaleaoch  
    OP
       2021-08-29 22:41:19 +08:00
    @kwanzaa 我是 Java 新手, python 和 Go 也是跨平台的 但是总能找到一些依赖 Linux 的第三方模块.
    不知道 Java 有没有.

    不过根据楼上大佬的回复, 看来是不多.
    Cbdy
        17
    Cbdy  
       2021-08-29 22:56:14 +08:00 via Android   ❤️ 1
    @chaleaoch
    关于你的这个问题,维基百科专门有个词条
    https://en.m.wikipedia.org/wiki/Write_once,_run_anywhere
    kingfalse
        18
    kingfalse  
       2021-08-30 00:13:04 +08:00 via Android
    mbp+linuxmint 台式机
    xuanbg
        19
    xuanbg  
       2021-08-30 06:53:16 +08:00
    编码过程完全不依赖任何平台和操作系统。
    Rache1
        20
    Rache1  
       2021-08-30 09:32:59 +08:00
    @zbw0414 这玩意儿,前两周用了几天,有几个问题。

    1 、不能复制 /粘贴,搜了一下,去年就有人提过,一直没解决。

    2 、另外看代码的时候滚动也不够跟手。

    3 、尽管我是在虚拟机运行,配置已经给到了 6c12g,用了一段时间开了 3 个项目后,卡到飞


    PS: 非浏览器运行,使用 projector 客户端登录
    leeyuzhe
        21
    leeyuzhe  
       2021-08-30 10:04:27 +08:00
    wsl 2 基本能满足所有要求
    yinzhili
        22
    yinzhili  
       2021-08-30 10:05:30 +08:00
    jvm 本身是跨平台的,除非你要用到硬件设备交互会比较麻烦点,其它都不必担心
    zzzmh
        23
    zzzmh  
       2021-08-30 10:18:38 +08:00
    我算是 java 菜鸟,我用 linux 的 idea,之后考虑换 vscode,主要看中 linux 的速度是真的快,例如 maven 打包,同一台电脑不同系统,能快 2 到 3 倍了。。。还有一个隐藏的好处是可以杜绝掉代码写了一半打开一个游戏哈哈。。。不过我 linux 水平也捉急,目前就靠 uos 这种简单易入门的
    hq136234303
        24
    hq136234303  
       2021-08-30 10:41:54 +08:00
    java 是执行在 JVM 上的。环境的问题是 JVM 会根据当前的环境执行不同的汇编的.所以不存在环境不同的问题。因为你在那个平台生成都是 class 。go 语言编译的时候会根据不同的环境生成不同的汇编。生存的是二进制执行文件。所以 win 编译的和 linux 生成的是不一样的。
    julyclyde
        25
    julyclyde  
       2021-08-30 10:57:27 +08:00
    @efaun 那说明你装的方法不对
    Nich0la5
        26
    Nich0la5  
       2021-08-30 11:23:29 +08:00
    不玩交叉编译基本没有 极少数几个库依赖特定平台,有些系统调用和文件路径会有影响。公司的百万行 java 项目在 Linux,win,x86mac,arm,mac 上都完美运行
    wqhui
        27
    wqhui  
       2021-08-30 11:53:34 +08:00
    java 应用跟什么平台开发没关系,jvm 做好适配了。用 linux 或者 mac 系统主要是有时候找文件、修改文件什么的,懒的用鼠标,就直接敲命令,而 windows 的命令跟 linux 不一样,敲起来很难受。而且大部分公司服务器都是 linux,上传下载东西也方便,scp 就过去了,windows 还要找个工具传
    zbw0414
        28
    zbw0414  
       2021-08-30 12:05:10 +08:00
    @Rache1
    1. 可以复制粘贴。需要自行修改配置开启 https,直接安装启动默认是非 https 的,通过 projector config edit 命令重新配置一下即可。
    2. 不跟手的问题,怎么说呢还是看网络吧,如果是云主机基本上就别想了,我这边是公司服务器和办公网在同一网段下,ping<3ms 基本上无感知。
    3. 卡顿问题到时没遇到过,可以试试修改 idea 的配置,贴上我自己的配置可以参考
    -server
    -Xmn1g
    -Xms16g
    -Xmx16g
    -XX:+BackgroundCompilation
    -XX:+AggressiveOpts
    -XX:+AggressiveHeap
    -XX:+UseNUMA
    -XX:CICompilerCount=64
    -XX:SurvivorRatio=8
    -XX:TargetSurvivorRatio=95
    -XX:MaxTenuringThreshold=15
    -XX:MaxGCPauseMillis=500
    Rache1
        29
    Rache1  
       2021-08-30 12:39:49 +08:00
    @zbw0414 我都是跑在本地虚拟机的,还没有上云,都不怎么跟手,后面这个配置我回去试一下看看。

    这样的话,复制这个也太烦了,没法复制到外部就算了,内部也不行,晚些时候回去试一下看看
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3663 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 04:47 · PVG 12:47 · LAX 21:47 · JFK 00:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.