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..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命令行编译及运行的更多相关文章
- java命令行编译和运行引用jar包的文件
经常遇到需要添加第三方jar文件的情况.在命令行状态下要加载外部的jar文件非常麻烦,很不好搞,在网上折腾了很久终于搞定了,在这里做个笔记: 2.运行:java -Djava.ext.dirs=./l ...
- 使用命令行编译打包运行自己的MapReduce程序 Hadoop2.6.0
使用命令行编译打包运行自己的MapReduce程序 Hadoop2.6.0 网上的 MapReduce WordCount 教程对于如何编译 WordCount.java 几乎是一笔带过… 而有写到的 ...
- Java 命令行编译项目
如果是用Exlipse, 第三方的包可以放在eclipse文件夹的jre包的lib文件夹中! (初学者的一些总结-高手们勿喷哈-) 原因: 以前一直用Eclispe编程环境运行Java.非常舒服,就像 ...
- Linux java 命令行编译 jar包
Java 命令行编译成class,然后在打包成jar文件. 编译成class javac -classpath $CLASS_PATH -d class ./src/Hello.java 可以通过ja ...
- Java 命令行 编译、执行、打包
Java 命令行 编译.执行.打包 一般来说 IDE 能够很方便的编译打包. 我写这篇文章是遇到了不能使用 IDE 的情况,简单记录一下,不做深入探讨. 环境 linux jdk 1.8 简单的编译执 ...
- 如何使用命令行编译和运行java文件
相信大家现在一般都在使用IDE环境来开发运行java文件,但我觉得可以在命令行里面简单运行java文件,技多不压身. 接下来我来说一下编译和运行java文件: 第一步,首先下一个入门程序(注意:一定要 ...
- java命令行编译运行、打包jar
过程:java文件→class文件→exe执行文件 --------------------------------------------- 一.编译:从.java生成.class (1)ecl ...
- 加载依赖的jar包在命令行编译和运行java文件
在命令里编译和执行java文件,当应用程序需要需要依赖的jar包里面的class文件才能编译运行的时候,应该这样做: 1. 首先是编译过程,在命令行里面执行: (1) javac -classpath ...
- java 命令行 编译 运行程序
学习java使用IDE前最好先用用命令行的javac.java来跑一跑简单的程序,这样能够熟悉一下包管理对.class文件路径的影响. 我们先写一段简单的代码: package com.csdn.lk ...
随机推荐
- Android -- Camera源码简析,启动流程
com.android.camera.Camera.java,主要的实现Activity,继承于ActivityBase. ActivityBase 在ActivityBase中执行流程: onCre ...
- 关于NLPIR应用在KETTLE中的探索
一:什么是NLPIR? NLPIR汉语分词系统(自然语言处理与信息检索共享平台),主要功能包括中文分词:词性标注:命名实体识别:用户词典功能:支持GBK编码.UTF8编码.BIG5编码.新增微博分词. ...
- [Backbone]2. More detail in Models
Our Appointment model doesn't seem too useful yet. Add two default attributes, title as the string & ...
- (LeetCode 153)Find Minimum in Rotated Sorted Array
Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 migh ...
- Linux之nohup命令:实现退出终端后程序继续后台运行
转自:http://tech.ccidnet.com/art/302/20070618/1115599_1.html 简单而有用的nohup命令在UNIX/LINUX中,普通进程用&符号放到后 ...
- YII插件
dropDownList: Yii中可以采用CHtml类来实现,也可以用CActiveForm来实现.一.用CHtml来实现.VIEW中实现: <?php echo CHtml::dropDow ...
- spring_restful_json_jdbc
使用Spring MVC +JDBC 实现输出Json数据和视图两种形式 最后面有源代码 从web.xml開始配置: 声明定义两个Servlet各自是输出视图和json <!-- 声明一个Ser ...
- WebStorm配置
一.主题配色 主题设置方法:File -> Settings -> Appearance & Behavior -> Appearance ->Theme. webst ...
- Web 应用性能提升的 10 个建议
建议一.利用反向代理服务器加速和保护应用 如果 Web 应用运行在一台独立的电脑上,性能问题的解决方案是显而易见的:换一台更快的电脑,里面加上更多的处理器.内存.快速磁盘阵列等等.然后在这台新电脑上运 ...
- eclipse 配置多个jdk(jre)
eclipse 配置多个jdk(jre) CreateTime--2018年4月24日08:57:40 Author:Marydon 1.打开设置窗口 输入jre 2.点击"Add... ...