第一部分:单文件

一、背景
目标文件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. [Ajax] AJAX初体验之-在博客中添加无刷新搜索

    现在博客很流行,相信应该上网时间稍微长点的朋友都会在这或者在那的有一个自己的博客.对于一些有一定能力的朋友,可能更喜欢自己去下载一个博客程序来架设一个自己的博客,而不是使用一些博客网站提供的服务.而大 ...

  2. 再谈javascript图片预加载技术

    图片预加载技术的典型应用: 如lightbox方式展现照片,无疑需要提前获得大图的尺寸,这样才能居中定位,由于javascript无法获取img文件头数据,必须等待其加载完毕后才能获取真实的大小然后展 ...

  3. 8个对程序员来说有用的jQuery小贴士和技巧

    1) 禁用鼠标右键单击 jQuery程序员可以使用此代码在网页上禁用鼠标右键点击. 1 2 3 4 5 6 7 8 9 10 $(document).ready(function() {     // ...

  4. Android之WifiManager

    移动设备离不开网络,android平台中在包android.net.wifi下提供了一些类专门用于管理设备的Wifi功能.该包下主要存在如下几个类: 1.  ScanResult:主要用来描述通过Wi ...

  5. 【Qt】仿QQ表情选择控件

         表情选择控件在聊天应用中常常要用到,做起来尽管不复杂可是非常繁琐.特别是有些图标须要按顺序排列.每次重做必定是非常费时.所以我将聊天表情选择控件封装成一个独立的类QFaceSelectWid ...

  6. 关于LayoutInflater的错误用法

    转自:http://www.doubleencore.com/2013/05/layout-inflation-as-intended/ Layout inflation is the term us ...

  7. Android动态设置字体颜色

    步骤: 1.在values目录下的strings.xml文件中加入颜色:比方 <color name="ccc">#ccc</color> 2.假设你直接这 ...

  8. grep命令经常使用參数及使用方法

    1.grep介绍 grep命令是Linux系统中一种强大的文本搜索工具,它能使用正則表達式搜索文本.并把匹 配的行打印出来.grep全称Global Regular Expression Print, ...

  9. PHP高级教程-文件

    PHP 文件处理 fopen() 函数用于在 PHP 中打开文件. 打开文件 fopen() 函数用于在 PHP 中打开文件. 此函数的第一个参数含有要打开的文件的名称,第二个参数规定了使用哪种模式来 ...

  10. java thread dump日志分析

    jstack Dump 日志文件中的线程状态 dump 文件里,值得关注的线程状态有: 死锁,Deadlock(重点关注)  执行中,Runnable 等待资源,Waiting on conditio ...