多年以来 一直使用的是IDE 来写java 项目,导致很多的最基础的东西都渐渐模糊了.
最近遇到一个问题就是如果命令行来运行一个java项目
当然这不是初学的那个运行 HelloWord.java ,而是一整个有多个包,多个java文件同时还有jar包依赖的一个项目
ok 先来复习一下运行HelloWord.java
首先cd 到HelloWord.java 的目录 然后:
javac HelloWord.java 
编译java文件, 然后会生成 HelloWord.class文件
然后执行 class文件
java HelloWord.class
如下图:
上面是简单的 简单的编译运行的复习,
但是回到现在运行一整个项目, 冒失好像不是那么好运行的了
当然,如果用IDE 把项目导出为可执行的jar 包得话, 直接 用名 java -jar demo.jar 就可直接运行了,
这里说得时自己去编译然后执行
首先编译 javac
项目结构如图:
带有一个简单的jar包
1. 首先cd 到 javaDemo 工程目录下
运行如下命令:
javac -d bin/ src/com/czy/Main.java src/com/czy/Teacher.java src/com/czy/student/Student.java -cp lib/lib.jar 
-d bin/ 表示把编译的文件 放到bin 目录下面
src/com/czy/Main.java src/com/czy/Teacher.java src/com/czy/student/Student.java
后面这些都是 相应的java文件, 所有的java文件都需要编译
后面的  -cp lib/lib.jar 
表示 吧 lib.jar 加到 classpath中去, 不然编译会出错如图:
ok 看下编译好的文件
ok 接下来 运行项目
java -cp bin/:lib/lib.jar com.czy.Main
-cp bin/:lib/lib.jar
表示 吧相应的 class 文件加入到 class path 中
后面则是 具体的 类名  com.czy.Main
需要注意的是 bin/:lib/lib.jar 使用:隔开 
所有的依赖包都需要加入到 classpath中去
项目运行如下
ok 一个简单的java 工程就运行完了
但是  貌似有些繁琐,  需要手动键入 java文件 以及相应的jar包 很是麻烦,
so 可以用 shell 来脚本来简化相关操作 
shell 文件整理如下:
#!/bin/bash
echo "build start"JAR_PATH=libs
BIN_PATH=bin
SRC_PATH=src# java文件列表目录
SRC_FILE_LIST_PATH=src/sources.list#生所有的java文件列表
rm -f $SRC_PATH/sources
find $SRC_PATH/ -name *.java > $SRC_FILE_LIST_PATH#删除就的编译文件 生成bin目录
rm -rf $BIN_PATH/
mkdir $BIN_PATH/#生成依赖jar包 列表
for file in  ${JAR_PATH}/*.jar;
do
jarfile=${jarfile}:${file}
done
echo "jarfile = "$jarfile#编译
javac -d $BIN_PATH/ -cp $jarfile @$SRC_FILE_LIST_PATH#运行
java -cp $BIN_PATH$jarfile com.zuiapps.danmaku.server.Main
有一点需要注意的是,   javac -d $BIN_PATH/ -cp $jarfile @$SRC_FILE_LIST_PATH
在要编译的文件很多时候,一个个敲命令会显得很长,也不方便修改,
可以把要编译的源文件列在文件中,在文件名前加@,这样就可以对多个文件进行编译,
以上就是吧java文件放到  $SRC_FILE_LIST_PATH 中去了
文件内容如下:
总结:
编译 :
1. 需要编译所有的java文件
2. 依赖的java 包都需要加入到 classpath 中去
3. 最后设置 编译后的 class 文件存放目录  即 -d bin/
4. java文件过多是可以使用  @$SRC_FILE_LIST_PATH 把他们放到一个文件中去
运行:
   1.需要吧 编译时设置的bin目录和 所有jar包加入到 classpath 中去
产考文章:
http://blog.csdn.net/huagong_adu/article/details/6929817

JAVA 命令行运行java项目相关推荐

  1. Windows命令行运行Java程序

    如何在Windows命令行运行Java程序 准备工作 1.安装JDK 安装JDK(Java Development Kit Java开发工具包 又称SDK)Oracle公司JDK下载地址,直接下载,然 ...

  2. python命令行运行django项目, can‘t open file ‘manage.py‘ 问题解决

    python命令行运行django项目, can't open file 'manage.py' 问题解决 参考文章: (1)python命令行运行django项目, can't open file ...

  3. java命令行运行 package_使用命令行运行Java程序

    很久没有试过用Java命令行来运行程序了.今天用的时候都感觉有点不太顺利了.所以特别记下来,以免后边什么时候又忘掉. 首先是将编写好的Java程序放在某一文件夹下边.(本文以D盘javabasecod ...

  4. java 无开发环境时在记事本中编写的方法与命令行运行java代码

    第一步:记事本编写java代码 用记事本编写的是java的源代码文件,里面的代码就是我们平时学习的java代码,生成的文 件后缀是.txt,更改文本文档的后缀名为 .java.java文件是不能直接执 ...

  5. 使用javac、java命令编译运行java代码

    这里简单的介绍一下如何用cmd命令来运行java代码 1.首先需要一个jdk吧,安装之后设置一下系统环境变量,就可以到处运行java命令了 2.下面先写一个简单的java例子 public class ...

  6. Java命令行运行参数说明大全--转

    来源:http://xinklabi.iteye.com/blog/837435 Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOME\ ...

  7. Java 命令行运行参数大全

    Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOME"bin"java –option 来启动,-option为虚拟 ...

  8. java执行class找不到_命令行运行java的class文件提示找不到或无法加载主类

    问题如下 TestOne.javapackage moon.star; public class TestOne { public void fTestOne() { System.out.print ...

  9. java 程序命令_命令行运行JAVA程序

    如果出现找不到变量,核查环境变量是否配置好 可以运行javac java java -version看是否正常 注意要在对应的目录下 核查java文件里边的名字 class文件名是否与java文件名一 ...

最新文章

  1. 鱼佬:我的数据挖掘之路!
  2. MOS管击穿原因和防护措施!
  3. java webstart 自动升级_windows – 使用java web start实现自动更新桌面应用程序时的AWTPermission异常...
  4. dedecms教程:搜索页显示条数更改
  5. 神策数据成林松:数据智能在业务场景下的应用(附 PPT 下载)
  6. C语言对p1口取反,单片机c语言编程基础(5页)-原创力文档
  7. Effective Java之优先使用标准的异常(六十)
  8. 表单验证JavaScript实现正则匹配、随机验证码、密码强度、加拖拽加蒙板
  9. 怎样保护计算机连接线,一根网线把电脑烧了:雷雨天如何保护家电?
  10. leecode11 盛水最多的容器
  11. linux磁盘管理的命令行,Linux磁盘管理命令介绍
  12. RadioButtonList Enabled=false 文字背景
  13. f2blog最新注入漏洞
  14. 详解jdbcTemplate和namedParameterJdbcTemplate
  15. SQL中代替Like语句的另一种写法
  16. 服务器lsass状态代码c0000005,Windows服务器上lsass.exe进程CPU使用率异常问题排查方法...
  17. 数据治理之元数据管理
  18. ubuntu linux mac地址,告诉你Ubuntu更改mac地址的方法及命令
  19. Salesforce系列(十):Salesforce Schedule cron定时执行方法!
  20. java远程连接fpt_java远程连接本地fpt

热门文章

  1. 2.1 內积与欧几里得空间
  2. 汇编语言统计字符串中字符的个数
  3. vue关于监听子组件接收从父组件传过来的动态值的问题
  4. 数据预处理-python实现
  5. 一个域名可以对应多个IP吗?如何通过DNS实现?
  6. Python3之多线程
  7. APP性能测试_帧率测试
  8. 三氟磺隆(CAS 82097-50-5)的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  9. 滴滴开源 LogicFlow:专注流程可视化的前端框架
  10. 基于ILP的最优PMU放置优化研究(Matlab代码实现)