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

Linux 下 OpenJDK 配置问题?

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

    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
    willhunger
        3
    willhunger  
    OP
       2016-09-08 13:31:03 +08:00 via iPhone
    @misaka19000 没有,我可以在 eclip se 下生成的.class 文件可以在 eclip se 运行,但是同样的文件在命令行就无法执行了
    willhunger
        4
    willhunger  
    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
    你的环境变量没设置好,只能执行全路径文件
    willhunger
        9
    willhunger  
    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 ?
    再检查一下环境配置问题?
    willhunger
        11
    willhunger  
    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 下。
    编译是没有问题,但是如果目录不对,执行时会找不到类。
    willhunger
        18
    willhunger  
    OP
       2016-09-08 16:40:38 +08:00 via iPhone
    @D3EP 我加上了
    willhunger
        19
    willhunger  
    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 的输出。
    willhunger
        21
    willhunger  
    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 这种引包不完全的环境里运行,看看是包的锅还是环境的锅
    willhunger
        24
    willhunger  
    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   ·   实用小工具   ·   2754 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 07:41 · PVG 15:41 · LAX 23:41 · JFK 02:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.