Linux 下 OpenJDK 配置问题? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
newbie269
V2EX    Java

Linux 下 OpenJDK 配置问题?

  •  
  •   newbie269 2016-09-08 12:54:17 +08:00 4022 次点击
    这是一个创建于 3398 天前的主题,其中的信息可能已经有所发展或是发生改变。

    JAVA 初学者,用的 Openjdk 。 我遇到的问题是:能够在命令行下编译.java 文件,不能命令行下运行.class 文件,但是在 ECLIPSE 下一切都好。

    http://imgsrc.baidu.com/forum/w%3D580/sign=2c1698829dcad1c8d0bbfc2f4f3f67c4/0e954ba7d933c895cd1b10d6d91373f083020062.jpg http://imgsrc.baidu.com/forum/w%3D580/sign=0704d8a504d79123e0e0947c9d355917/e14f9025bc315c60f92ce34285b1cb1348547717.jpg

    可以编译就是无法运行.class 文件?? 这是什么问题???

    25 条回复    2016-09-09 15:11:20 +08:00
    misaka19000
        1
    misaka19000  
       2016-09-08 13:10:35 +08:00
    看你的这个错误好像是 class 文件的问题,而不是 Java 命令的问题
    mikicomo
        2
    mikicomo  
       2016-09-08 13:20:22 +08:00
    java 文件里的代码贴一下?看上去不是环境的问题+1
    newbie269
        3
    newbie269  
    OP
       2016-09-08 13:31:03 +08:00 via iPhone
    @misaka19000 没有,我可以在 eclip se 下生成的.class 文件可以在 eclip se 运行,但是同样的文件在命令行就无法执行了
    newbie269
        4
    newbie269  
    OP
       2016-09-08 13:32:00 +08:00 via iPhone
    @mikicomo 你看下楼上,凌风学长
    jiangtao92
        5
    jiangtao92  
       2016-09-08 13:32:09 +08:00
    昨天刚遇到过, 试一试 java -cp . HelloWorld 如果可以的话,检查一下自己的 CLASSPATH 路径有没有忘记 .;........
    mikicomo
        6
    mikicomo  
       2016-09-08 13:38:25 +08:00
    @jiangtao92 楼主的点已经加了的,应该不是这个的问题..

    @willhunger 额额....这就不太清楚了...
    fuckcpc
        7
    fuckcpc  
       2016-09-08 13:55:27 +08:00 via iPhone
    环境变量的问题
    fuckcpc
        8
    fuckcpc  
       2016-09-08 13:56:55 +08:00 via iPhone
    你的环境变量没设置好,只能执行全路径文件
    newbie269
        9
    newbie269  
    OP
       2016-09-08 14:03:12 +08:00 via iPhone
    @fuckcpc 我的环境变量是好的?
    请问全路径文件是什么?
    rosu
        10
    rosu  
       2016-09-08 14:29:22 +08:00 via Android
    尝试 Google : how to install JDK in Ubuntu ?
    再检查一下环境配置问题?
    newbie269
        11
    newbie269  
    OP
       2016-09-08 14:40:36 +08:00 via iPhone
    @rosu 我可以在 eclipse 下敲代码运行,环境应该是好的,但是就是无法在 shell 下运行
    timeship
        12
    timeship  
       2016-09-08 14:43:06 +08:00
    openjdk 我记得不是一条命令直接装上就 OK 吗?看报错是你的代码有问题啊
    rosu
        13
    rosu  
       2016-09-08 14:49:39 +08:00 via Android
    @willhunger 抱歉,我仔细看了看错误提示。我觉得...可能是你的程序的 class 名不是 HelloWrold ?你再仔细看看?
    drackzy
        14
    drackzy  
       2016-09-08 14:52:35 +08:00
    sudo update-alternatives --config java
    D3EP
        15
    D3EP  
       2016-09-08 14:54:57 +08:00 via Android
    CLASSPATH 加上 . ,加上当前目录。
    D3EP
        16
    D3EP  
       2016-09-08 14:55:31 +08:00 via Android
    你这个是 CLASSPATH 里没有当前目录。
    sylecn
        17
    sylecn  
       2016-09-08 14:56:53 +08:00
    如果习惯了 Eclipse ,是不是默认就创建了 package? 如果有 package ,必须把 class 文件放在合适的目录才行。

    比如 package com.emacsos.java.hello; 就需要把 class 文件放到 com/emacsos/java/hello/*.class 下。
    编译是没有问题,但是如果目录不对,执行时会找不到类。
    newbie269
        18
    newbie269  
    OP
       2016-09-08 16:40:38 +08:00 via iPhone
    @D3EP 我加上了
    newbie269
        19
    newbie269  
    OP
       2016-09-08 16:41:03 +08:00 via iPhone
    @sylecn 并没有 package
    sylecn
        20
    sylecn  
       2016-09-08 17:02:26 +08:00
    麻烦贴一下源码。另外贴一下 javac -version 和 java -version 的输出。
    newbie269
        21
    newbie269  
    OP
       2016-09-08 20:45:20 +08:00
    @misaka19000
    @mikicomo
    @jiangtao92
    @fuckcpc
    @rosu
    @timeship
    @drackzy
    @D3EP
    @sylecn


    换上 OracleJDK 已经完美解决了,谢谢大家的帮忙
    mikicomo
        22
    mikicomo  
       2016-09-08 21:01:28 +08:00
    @willhunger 嗯...小声问句, OpenJDK 直接 yum/dnf/apt/apt-get 不就可以了么
    GKLuke
        23
    GKLuke  
       2016-09-08 21:50:31 +08:00
    其实哦,在 eclipse 里打成 jar 包,在放到 linux 这种引包不完全的环境里运行,看看是包的锅还是环境的锅
    newbie269
        24
    newbie269  
    OP
       2016-09-08 22:08:52 +08:00
    @mikicomo 对的呀,可是喵喵说 openjdk 不需要配置环境变量,然而我配置了。然后我换了 OracleJDK 就好了,不解这是为什么?(◎_◎;)
    sonack
        25
    sonack  
       2016-09-09 15:11:20 +08:00 via Android
    你的代码是不是在某个包 a.b 下,而你在 class 所在的路径下用 java 运行的?在包的最外层的那个目录运行 java a/b/classfile 试试~
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4776 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 45ms UTC 03:58 PVG 11:58 LAX 19:58 JFK 22:58
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86