java命令框编译代码的方式_在命令行模式下如何编译运行Java代码

由于已经习惯了在Windows环境中进行开发,最近在尝试将开发环境转移到Linux上面。遇到一篇值得参考的外文,特翻译记录一下。【只翻译了部分】

一直被集成开发环境和自动构建工具“溺爱”着,我最近意识到我居然一点儿都不会在命令行模式下去运行Java代码。我花五分钟时间写了一段代码,花费很久时间去编译。我想是时候做一点儿研究了。

任务:一个相对标准的Java工程,将包含这样3个顶层文件夹

/bin:空文件夹,将会包含编译之后的.class文件

/lib:包含第三方的jar包

/src:包含.java源文件

我们的任务是在此工程的根文件夹下,编译与运行此工程。我们将以windows操作系统为例来进行说明。(在Unix系统环境中,与windows仅仅存在分隔符的差异,Unix中是以冒号:作分隔符,Windows中以分号;作分隔符)

编译java代码

第一步是将普通文本.java源程序编译为java字节代码(.class文件),使用javac命令来完成。假设我们在此工程的根文件夹下,将尝试将Application.java编译到bin文件夹中,并且Application.java是位于com.example包中的,它也用到了lib文件夹下的lib1.jar与lib2.jar文件,编译命令如下:

javac -d bin -sourcepath src -cp lib/lib1.jar;lib/lib2.jar src/com/example/Application.java

编译成功之后,bin/com/example/Application.class文件将被创建。如果Application.java用到了工程中的其他类,它们也将会被自动编译并且输出到对应的文件夹。

运行java代码

使用java命令去运行我们刚刚编译得到的.class文件。假设我们在此工程的根文件夹下,将运行Application.java,其Application.java是位于com.example包中的,它也用到了lib文件夹下的lib1.jar与lib2.jar文件,运行命令如下:

java -cp bin;lib/lib1.jar;lib/lib2.jar com.example.Application

注意到,这里我们并没有使用文件名,仅仅是类名,基于提供的路径下,java可以找到类对应的文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/340124.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hibernate jpa_JPA /Hibernate刷新策略初学者指南

hibernate jpa介绍 在我以前的文章中,我介绍了实体状态转换 对象关系映射范例。 当刷新当前持久性上下文时,所有管理实体状态转换都将转换为关联的数据库语句。 Hibernate的刷新行为并不总是像人们想象的那样明显。 后写 Hibernate尝试将持久性上下文刷…

aop+注解 实现对实体类的字段校验_SpringBoot实现通用的接口参数校验

来自:掘金,作者:cipher链接:https://juejin.im/post/5af3c25b5188253064651c76原文链接:http://www.ciphermagic.cn/spring-boot-aop-param-check.html本文介绍基于Spring Boot和JDK8编写一个AOP,结合自定义…

java基础分享_一、java基础教程

1、java是一门比较纯粹的面向对象编程语言,所以java的所有代码都必须写在类的内部。1.1 java的可执行文件后缀名是".java",例如HelloWorld.java,并且每个可执行文件内部,必须有且仅有一个public公共类/公共接口/公共抽象…

Spring Boot自定义横幅生成

每当我们启动Spring Boot应用程序时,都会显示如下所示的文本消息。 这称为横幅。 现在,如果我们可以创建一个特定于我们的Spring Boot应用程序的自定义横幅并使用它代替默认的Spring Boot横幅,那将不是一件很棒的事。 有很多方法可以生成和使…

java简单递归算法_java递归算法的简单示例

java递归算法的简单示例今天参加笔试,要求用递归实现1357……没写出来,蛋疼。。。。下面复习一下,自己尝试着写还是没有写出来。。。。。没有写出来的关键是自己不知道该如何实现求和、实现出口递归实现的关键是:1.出口的设计2.递…

java等待_Java学习:等待唤醒机制

等待唤醒机制线程的状态NEW 至今尚未启动的线程处于这种状态RUNNABLE 正在Java虚拟机中执行的线程处于这种状态BLOCKED 受阻塞并等待某个监视器锁的线程处于这种状态WAITING 无限期的等待另一个线程来执行某一待定操作的线程处于这种状态TIMED_WAITNG 等待另一个线程来执行取…

游戏ai 行为树_游戏AI –行为树简介

游戏ai 行为树游戏AI是一个非常广泛的主题,尽管有很多资料,但我找不到能以较慢且更易理解的速度缓慢介绍这些概念的东西。 本文将尝试解释如何基于行为树的概念来设计一个非常简单但可扩展的AI系统。 什么是AI? 人工智能是参与游戏的实体表现…

java适配器模式应用_java笔记--适配器模式的运用

适配器模式的运用主要应用:可以在符合OCP原则(开笔原则)的基础上,为类增加新的功能。在现有功能上添加新的功能时无须修改原有功能代码。主要角色:目标角色:就是期待得到的接口,如给汽车添加GPS的接口;源角色&#xff…

java构造器_Java构造器就是这么简单!

前言理解构造器之前,首先我们需要了解Java中为什么要引入构造器,以及构造器的作用。在很久之前,程序员们编写C程序总会忘记初始化变量(这真的是一件琐碎但必须的事),C引入了 构造器(constructor) 的概念&am…

JavaFX技巧32:需要图标吗? 使用Ikonli!

动机 自2013年以来,我一直在编写JavaFX应用程序和库的代码,它们的共同点是,我需要找到可以用于它们的良好图标/图形。 作为前Swing开发人员,我首先使用图像文件,GIF或PNG。 通常,我会从IconExperience&…

mysql索引是什么 优点和缺点_mysql索引的类型和优缺点

现在来介绍了数据库索引,及其优、缺点。针对MySQL索引的特点、应用进行了详细的描 述。分析了如何避免MySQL无法使用,如何使用EXPLAIN分析查询语句,如何优化MySQL索引的应用。本文摘自《MySQL 5权威指南》(3rd)的8.9节。索引是一种特殊的文件…

pycharm和python在mac里安装_MAC安装python-opencv及在pycharm下的配置

基础:Mac os 10.13.4;pycharm2018.1;Python3.6.5小白一个,某日突发奇想,想利用opencv实现面部识别,但在网上查了一圈,在配置时都太麻烦,什么下载源码,用Xcode或者CMake编…

内置对象和内置函数_内置假对象

内置对象和内置函数尽管模拟对象是进行单元测试的理想工具,但通过模拟框架进行模拟可能会将您的单元测试变成难以维护的混乱。 这种复杂性的根本原因是我们的对象太大。 他们有很多方法,这些方法返回其他对象,这些对象也有方法。 当将此类对…

java应用部署docker_Docker部署JavaWeb项目实战

摘要:本文主要讲了怎样在Ubuntu14.04 64位系统下来创建一个执行Java web应用程序的Docker容器。一、下载镜像、启动容器1、下载镜像先查看镜像docker images记住这个Image ID,下面我们启动容器须要用到它。假设看到以上输出,说明您能够使用“…

python解析http数据包_如何在python中嗅探HTTP数据包?

I want to sniff all the HTTP packets in my computer via python(version2.6.. is this possible? can I do it with scapy, or without other external modules?解决方案Scrapy is only for extracting data from webpages or similar structured documents.To actually r…

如何用Java创建不可变的Map

你好朋友, 在本教程中,我们将看到如何用Java创建不可变的Map。 –不可变的类或对象是什么意思? –什么是不可变地图? –如何在Java中创建不可变的Map? 不变的类或对象是什么意思? 不可变的类或对象是创…

quartz java 线程 不释放_java Quartz 内存泄漏

我用定时器启动应用的时候发现内存泄漏,具体报错如下:十月 30, 2015 2:30:12 下午 org.apache.catalina.startup.HostConfig undeploy信息: Undeploying context [/ChinaMoney Maven Webapp]十月 30, 2015 2:30:15 下午 org.apache.catalina.loader.Weba…

在ultraedit查找每行第二个单词_新手收藏!亚马逊关键字查找

亚马逊销售中最重要的是“排名”。而“关键字”对提高排名很重要。搜索结果对亚马逊的销售产生重大影响。要想让你的产品被显示在搜索结果的顶部,那你必须选择有效的关键字。搜索关键词排名一直上不去,你可能会这么想:“关键字不好吧......。…

java opencv磨皮算法_使用OPENCV简单实现具有肤质保留功能的磨皮增白算法

在一个美颜高手那里发现一个美颜算法,他写出了数学表达式,没有给出代码,正好在研究OPENCV,顺手实现之。具体过程就是一系列矩阵运算,据说是从一个PS高手那里研究 出来的,一并表示感谢。这是数学表达式&…

junit单元测试断言_简而言之,JUnit:单元测试断言

junit单元测试断言简而言之,本章涵盖了各种单元测试声明技术。 它详细说明了内置机制, Hamcrest匹配器和AssertJ断言的优缺点 。 正在进行的示例扩大了主题,并说明了如何创建和使用自定义匹配器/断言。 单元测试断言 信任但要验证 罗纳德里…