• JAVA命令行编译及运行


    第一部分:单文件

    一、背景
    目标文件HelloWorld.java

    package ccdate;
    
    public class HelloWorld {
            public static void main(String[] args) {
                    System.out.println("Hello World!");
            }   
    }

    二、编译

    cd ccdate
    javac HelloWorld.java

    如果不报错而且多了一个HelloWorld.classs,恭喜你编译成功。


    三、运行

    java HelloWorld

    什么?报错了

    Error: Could not find or load main class HelloWorld

    四、解决方案
    网上搜索到的最普遍的说法是CLASSPATH没有正确的设置。

    export JAVA_HOME=/usr/java/jdk1.8.0_112  
    export JRE_HOME=${JAVA_HOME}/jre    
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib    
    export PATH=${JAVA_HOME}/bin:$PATH

    然后执行source /etc/profile
    然而,错误依旧。


    五、最终的解决
    原因,我的示例类有一个包路径ccdate

    cd ..  //就是离开当前的包路径
    java ccdate.HelloWorld

    OK,能看到让人激动的Hello World!打印了。

    第二部分:含第三方依赖库的项目

    一、背景
      1. 项目名称fs-esl
      2. 项目主路径/home/fs-esl
      3. 项目结构
         3.1 java源文件的路径     

        fs-esl/com/*

             //本文档实际测试时就一个main类,
             //具体路径fs-esl/com/vvhi/fsesl/begining/FsEsl.java
             //这个类就干一件事,打印Hello World!
         3.2 项目关联的第三方库

        fs-esl/lib

         3.3 menifest文件

        fs-esl/menifest


    二、编译

    cd /home/fs-esl
    javac -Djava.ext.dirs=./lib com/vvhi/fsesl/begining/FsEsl.java

    如果多了一个FsEsl.java旁边多了一个同名的class文件,编译成功。

    三、menifest
    编辑menifest,根据实际情况改写。示例:

    Manifest-Version: 1.0
    Class-Path: . lib/slf4j-api-1.7.25.jar lib/log4j-slf4j-imp
     l-2.8.2.jar lib/log4j-api-2.8.2.jar lib/log4j-core-2.8.2.
     jar lib/spring-jdbc-4.3.6.RELEASE.jar lib/junit-4.12.jar
     lib/spring-beans-4.3.6.RELEASE.jar lib/spring-core-4.3.6.
     RELEASE.jar lib/spring-tx-4.3.6.RELEASE.jar lib/hamcrest-
     core-1.3.jar lib/commons-logging-1.2.jar lib/esl.jar
    Main-Class: com.vvhi.fsesl.begining.FsEslMain

    四、打包

    cd /home/fs-esl
    jar cvmf menifest fs-esl.jar com/vvhi/fsesl/begining/FsEsl.class

    如果不报错而且多了一个fs-esl.jar文件,打包成功。

    五、运行

    java -jar fs-esl.jar

    如果屏幕出现Hello World!

    恭喜!你成功的完成了一次手动编译、打包java项目的全过程。

  • 相关阅读:
    拼接带有汉字的html接口时应注意的问题
    引入第三方友盟分享出现的问题
    修改系统文件内容的经典错误总结
    实例变量 、 属性 、便利构造器、设置器、 访问器、实例方法("-") 、类方法("+"静态方法)、单例
    iOS开发 调用打电话,发短信
    UINavigationController的相关设置
    “商城项目”自定义搜索框
    下拉刷新,上拉加载更多
    NSArray数组随机排序
    面向对象概念
  • 原文地址:https://www.cnblogs.com/yoyotl/p/6821310.html
Copyright © 2020-2023  润新知