第一部分:单文件

一、背景
目标文件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..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..jar lib/log4j-slf4j-imp
l-2.8..jar lib/log4j-api-2.8..jar lib/log4j-core-2.8..
jar lib/spring-jdbc-4.3..RELEASE.jar lib/junit-4.12.jar
lib/spring-beans-4.3..RELEASE.jar lib/spring-core-4.3..
RELEASE.jar lib/spring-tx-4.3..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项目的全过程。

JAVA命令行编译及运行的更多相关文章

  1. java命令行编译和运行引用jar包的文件

    经常遇到需要添加第三方jar文件的情况.在命令行状态下要加载外部的jar文件非常麻烦,很不好搞,在网上折腾了很久终于搞定了,在这里做个笔记: 2.运行:java -Djava.ext.dirs=./l ...

  2. 使用命令行编译打包运行自己的MapReduce程序 Hadoop2.6.0

    使用命令行编译打包运行自己的MapReduce程序 Hadoop2.6.0 网上的 MapReduce WordCount 教程对于如何编译 WordCount.java 几乎是一笔带过… 而有写到的 ...

  3. Java 命令行编译项目

    如果是用Exlipse, 第三方的包可以放在eclipse文件夹的jre包的lib文件夹中! (初学者的一些总结-高手们勿喷哈-) 原因: 以前一直用Eclispe编程环境运行Java.非常舒服,就像 ...

  4. Linux java 命令行编译 jar包

    Java 命令行编译成class,然后在打包成jar文件. 编译成class javac -classpath $CLASS_PATH -d class ./src/Hello.java 可以通过ja ...

  5. Java 命令行 编译、执行、打包

    Java 命令行 编译.执行.打包 一般来说 IDE 能够很方便的编译打包. 我写这篇文章是遇到了不能使用 IDE 的情况,简单记录一下,不做深入探讨. 环境 linux jdk 1.8 简单的编译执 ...

  6. 如何使用命令行编译和运行java文件

    相信大家现在一般都在使用IDE环境来开发运行java文件,但我觉得可以在命令行里面简单运行java文件,技多不压身. 接下来我来说一下编译和运行java文件: 第一步,首先下一个入门程序(注意:一定要 ...

  7. java命令行编译运行、打包jar

    过程:java文件→class文件→exe执行文件 --------------------------------------------- 一.编译:从.java生成.class   (1)ecl ...

  8. 加载依赖的jar包在命令行编译和运行java文件

    在命令里编译和执行java文件,当应用程序需要需要依赖的jar包里面的class文件才能编译运行的时候,应该这样做: 1. 首先是编译过程,在命令行里面执行: (1) javac -classpath ...

  9. java 命令行 编译 运行程序

    学习java使用IDE前最好先用用命令行的javac.java来跑一跑简单的程序,这样能够熟悉一下包管理对.class文件路径的影响. 我们先写一段简单的代码: package com.csdn.lk ...

随机推荐

  1. Java基础(四):Java Number & Math 类、Character 类、String 类、StringBuffer & StringBuilder 类

    一.Java Number & Math 类: 1.Number类: 一般地,当需要使用数字的时候,我们通常使用内置数据类型,如:byte.int.long.double 等.然而,在实际开发 ...

  2. 顺序查找 && 折半查找

    顺序查找                                                             算法描述 顺序比较即可. 平均查找长度 (n+1)/2, 其中n为表长 ...

  3. VM虚拟机启动报错Reason Failed to lock the file怎么办

    VMware启动报错Reason: Failed to lock the file的解决方法 症状:  启动VMware虚拟机的时候出现了Cannot open the disk '*.vmdk' o ...

  4. shell 编程笔记

    #! /bin/sh 寻找shell解释器 /bin/sh  是一个路径 #! /usr/bin/python 仅仅是寻找一个python的解释器 执行linux程序的方法: 使得文件具有可执行的权限 ...

  5. 解决ArcEngine开发程序“假死”现象

    在GIS数据处理中,数据量大是一个非常伤脑筋的问题.最近,在写一个CAD注记转Shapefile文件时,又遇到这个问题. 曾经处理一次数据,达130万个点,即测试区域内的栅格转成点全部处理,程序是写好 ...

  6. 【转载】oracle更新语法

    oracle更新语法:1.一般语法   update tab set col = .... [where ...]   =后可以有子查询,但是必须对于tab的每一列返回唯一一行与之对应,where是需 ...

  7. STL - Map - 运行期自定义排序

    RuntimeStringCmp.cpp #include <string> using namespace std; // function object to compare stri ...

  8. MVC 之 <%%>相关内联代码块用法

    1.<%@ ... %> 添加引用; 2.<% ... %> <%%>之间可以执行服务端代码,如<% foreach (DataRow dataRow in ...

  9. [置顶] Android之服务器编程

    这个教程主要是讲解服务器编程的,如果你的应用需要和服务器通信,那就必须了解服务器编程(当然,也许你不需要了解,因为你只开发客户端),Android应用和服务器的通信可以使用Http + JSON来通信 ...

  10. base64 图片编码之再优化

    首先进入网站: http://b64.io/ 最多可减少图片体积容量近70%,建议不要优化base 64 图片格式为gif , 已实测如果用gif的话会增加容量.