社区
Java SE
帖子详情
用Javac怎么单独编译一个java文件 !
[小文]
2007-04-16 05:24:18
如题
...全文
1171
8
打赏
收藏
用Javac怎么单独编译一个java文件 !
如题
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
swoky
2007-04-16
打赏
举报
回复
1。将你所引用的包复制到jre\lib\ext
如 H:\Program Files\Java\jdk1.5.0_11\jre\lib\ext的下面即可
或者2.将要引用的包解压缩,和你的程序放在同一级,如果有包,和包放在同一级即可
张琪Samuel
2007-04-16
打赏
举报
回复
javac -cp <path> code.java
其中<path>中填写被引用的包的完整路径。如果遇到其他问题,直接在命令行输入javac参看提示。
dr_lou
2007-04-16
打赏
举报
回复
javac d:/javaException.java //编译
[小文]
2007-04-16
打赏
举报
回复
引用了别的包的!怎么编译?
[小文]
2007-04-16
打赏
举报
回复
不是的,少包!
zuguanqun
2007-04-16
打赏
举报
回复
首先要配置path java_home classpath
javac name.java 后 java name
gongyali2005
2007-04-16
打赏
举报
回复
javac aaa.java
OK!
gtw0520
2007-04-16
打赏
举报
回复
javac java文件名
学习
Java
基本语法的仓库 存放学习
Java
的md
文件
和
Java
代码.rar
java
运行机制
java
核心机制
java
虚拟机 jvm
java
virtual machine 1. jvm是
一个
虚拟的计算机,具有指令集并使用不同的存储区域。负责执行管理数据、内存、寄存器,包含在JDK中 2. 不同平台,不同虚拟机 3.
java
虚拟机屏蔽了底层运行平台的差别,实现一次
编译
,到处运行 JDK JDK的全称(
java
Development Kit
java
开发工具包) JDK=JRE+
java
的开发工具(
java
,
java
c
,
java
doc,
java
p等) JDK给
java
开发人员使用包含JRE,所以不用
单独
安装 JRE JRE(
java
Runtime environment
java
运行环境) JRE=JVM +
java
核心类库 包括
java
虚拟机和核心类库,想运行
一个
开发好的程序,只需要JRE即可 JDK=JRE+
java
开发工具=JVM+
java
核心库+
java
开发工具 环境配置 下载JDK 现在Oracle下载JDK需要登录用户,大家可以使用这个网站提供的用户名和密码 http://bugmenot.com/view/oracle.com
java
混淆工具,不可逆 jocky 也许是最好的了
一、前言 其他资源: web报表工具 http://download.csdn.net/source/2881508 1.1 什么是Jocky? 我们知道,
Java
是一种跨平台的编程语言,其源码(.
java
文件
)被
编译
成与平台无关的字节码(.class
文件
),然后在运行期动态链接。这样,
编译
后的类
文件
中将包含有符号表,从而使得
Java
程序很容易被反
编译
。相信每
一个
Java
开发人员,都曾经用过诸如Jad之类的反
编译
器,对
Java
的class
文件
进行反
编译
,从而观察程序的结构与实现细节。如此一来,对于那些需要严格进行知识产权保护的
Java
应用,如何有效的保护客户的商业投资,是开发人员经常需要面对的问题。 于是就出现了
Java
混淆
编译
器,它的作用是打乱class
文件
中的符号信息,从而使反向工程变得非常困难。 Jocky就是这样一款优秀的
Java
混淆
编译
器。 1.2 为什么需要Jocky? 目前业界有不少商业的甚或是开源的混淆
编译
器,但它们普遍存在一些这样或者那样的问题。一般而言,现有的混淆器都是对
编译
好的 class
文件
进行混淆,这样就需要
编译
和混淆两个步骤。而事实上,并不是所有的符号都需要混淆。如果你开发的是
一个
类库,或者某些类需要动态装载,那些公共API(或者说:那些被publish出来的API)就必须保留符号不变,只有这样,别人才能使用你的类库。现有的混淆器提供了GUI或脚本的方式来对那些需要保留的符号名称进行配置,但如果程序较大时,配置工作将变得很复杂,而程序一旦修改,配置工作又要重新进行。某些混淆器能够调整字节码的顺序,使反
编译
更加困难,但笔者经历过混淆之后的程序运行出错的情况。 而Jocky与其它混淆
编译
器最大的不同之处在于:它是直接从源码上做文章,也就是说
编译
过程本身就是
一个
混淆过程。 1.3 Jocky是如何工作的? Jocky混淆
编译
器是在Sun JDK中提供的
Java
编译
器(
java
c
)的基础上完成的,修改了其中的代码生成过程,对
编译
器生成的中间代码进行混淆,最后再生成class
文件
,这样
编译
和混淆只需要
一个
步骤就可以完成。另外可以在源程序中插入 符号保留指令 来控制哪些符号需要保留,将混淆过程与开发过程融合在一起,不需要
单独
的配置。 1.4 Jocky的作用 1.4.1代码混淆 如前文所述,混淆
编译
是Jocky的首要用途。我们举
一个
最简单的例子,下面的SimpleBean是未经混淆的class
文件
通过Jad反
编译
以后获得的源
文件
: public class SimpleBean implements Serializable { private String name = "myname"; private List myList = null; public void SimpleBean() { myList = new ArrayList(10); } public void foo1() { myList.add("name"); } private void foo2() { } private void writeObject(
java
.io.ObjectOutputStream out) throws IOException { } } 下面是经Jocky混淆过的类
文件
,通过Jad反
编译
后产生的源
文件
: public class SimpleBean implements Serializable { private String _$2; private List _$1; public SimpleBean() { _$2 = "myname"; this; JVM INSTR new #4 ; JVM INSTR dup ; JVM INSTR swap ; 10; ArrayList(); _$1; } public void foo1() { _$1.add("name"); } private void _$1() { } private void writeObject(ObjectOutputStream objectoutputstream){ throws IOException { } }
Java
内核原理入门到实战(大神必经之路)
主要特性
Java
语言是简单的:
Java
语言的语法与 C 语言和 C++ 语言很接近,使得大多数程序员很容易学习和使用。另一方面,
Java
丢弃了 C++ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,
Java
语言不使用指针,而是引用。并提供了自动分配和回收内存空间,使得程序员不必为内存管理而担忧。
Java
语言是面向对象的:
Java
语言提供类、接口和继承等面向对象的特性,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为 implements)。
Java
语言全面支持动态绑定,而 C++语言只对虚函数使用动态绑定。总之,
Java
语言是
一个
纯的面向对象程序设计语言。
Java
语言是分布式的:
Java
语言支持 Internet 应用的开发,在基本的
Java
应用编程接口中有
一个
网络应用编程接口(
java
net),它提供了用于网络应用编程的类库,包括 URL、URLConnection、Socket、ServerSocket 等。
Java
的 RMI(远程方法激活)机制也是开发分布式应用的重要手段。
Java
语言是健壮的:
Java
的强类型机制、异常处理、垃圾的自动收集等是
Java
程序健壮性的重要保证。对指针的丢弃是
Java
的明智选择。
Java
的安全检查机制使得
Java
更具健壮性。
Java
语言是安全的:
Java
通常被用在网络环境中,为此,
Java
提供了
一个
安全机制以防恶意代码的攻击。除了
Java
语言具有的许多安全特性以外,
Java
对通过网络下载的类具有
一个
安全防范机制(类 ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类 SecurityManager)让
Java
应用设置安全哨兵。
Java
语言是体系结构中立的:
Java
程序(后缀为
java
的
文件
)在
Java
平台上被
编译
为体系结构中立的字节码格式(后缀为 class 的
文件
),然后可以在实现这个
Java
平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。
Java
语言是可移植的:这种可移植性来源于体系结构中立性,另外,
Java
还严格规定了各个基本数据类型的长度。
Java
系统本身也具有很强的可移植性,
Java
编译
器是用
Java
实现的,
Java
的运行环境是用 ANSI C 实现的。
Java
语言是解释型的:如前所述,
Java
程序在
Java
平台上被
编译
为字节码格式,然后可以在实现这个
Java
平台的任何系统中运行。在运行时,
Java
平台中的
Java
解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。
Java
是高性能的:与那些解释型的高级脚本语言相比,
Java
的确是高性能的。事实上,
Java
的运行速度随着 JIT(Just-In-Time)
编译
器技术的发展越来越接近于 C++。
Java
语言是多线程的:在
Java
语言中,线程是一种特殊的对象,它必须由 Thread 类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为 Thread(Runnable) 的构造子类将
一个
实现了 Runnable 接口的对象包装成
一个
线程,其二,从 Thread 类派生出子类并重写 run 方法,使用该子类创建的对象即为线程。值得注意的是 Thread 类已经实现了 Runnable 接口,因此,任何
一个
线程均有它的 run 方法,而 run 方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。
Java
语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为 synchronized)。
Java
语言是动态的:
Java
语言的设计目标之一是适应于动态变化的环境。
Java
程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,
Java
中的类有
一个
运行时刻的表示,能进行运行时刻的类型检查。
java
-
java
c
-kata
java
-
java
c
-kata(最近完成2021/03/13) 有两种模式:类路径和模块路径。 类路径部分 有
一个
主要的世界一流的问候。
编译
源代码[DONE] 运行代码[DONE] 生成并运行
一个
罐子[完成] 生成
一个
可执行的jar [DONE] 有
一个
主要的hello世界类,其中包含
一个
第三方jar依赖项。
编译
源代码[DONE] 运行代码[DONE] 建立可执行的胖子[DONE] 使用类路径[DONE]构建可执行jar 在
单独
的
文件
夹中有
一个
带有依赖项的SpringBoot应用程序。 要获取它,请运行mvn命令并删除目标
文件
夹中的所有不必要的
文件
。
编译
源代码[DONE] 运行应用程序[完成]
编译
测试[完成] 运行测试[完成] 模块路径部分 有
一个
主要的世界一流的问候。
编译
源代码[DONE] 运行代码[DONE] 生成并运行
一个
罐子[完成] 生
jocky 混肴
编译
rar包(ant和插件俩个版本)
Jocky混淆
JAVA
代码(保护你的
JAVA
项目) 一、前言 1.1 什么是Jocky? 我们知道,
Java
是一种跨平台的编程语言,其源码(.
java
文件
)被
编译
成与平台无关的字节码(.class
文件
),然后在运行期动态链接。这样,
编译
后的类
文件
中将包含有符号表,从而使得
Java
程序很容易被反
编译
。相信每
一个
Java
开发人员,都曾经用过诸如Jad之类的反
编译
器,对
Java
的class
文件
进行反
编译
,从而观察程序的结构与实现细节。如此一来,对于那些需要严格进行知识产权保护的
Java
应用,如何有效的保护客户的商业投资,是开发人员经常需要面对的问题。 于是就出现了
Java
混淆
编译
器,它的作用是打乱class
文件
中的符号信息,从而使反向工程变得非常困难。 Jocky就是这样一款优秀的
Java
混淆
编译
器。 1.2 为什么需要Jocky? 目前业界有不少商业的甚或是开源的混淆
编译
器,但它们普遍存在一些这样或者那样的问题。一般而言,现有的混淆器都是对
编译
好的 class
文件
进行混淆,这样就需要
编译
和混淆两个步骤。而事实上,并不是所有的符号都需要混淆。如果你开发的是
一个
类库,或者某些类需要动态装载,那些公共API(或者说:那些被publish出来的API)就必须保留符号不变,只有这样,别人才能使用你的类库。现有的混淆器提供了GUI或脚本的方式来对那些需要保留的符号名称进行配置,但如果程序较大时,配置工作将变得很复杂,而程序一旦修改,配置工作又要重新进行。某些混淆器能够调整字节码的顺序,使反
编译
更加困难,但笔者经历过混淆之后的程序运行出错的情况。 而Jocky与其它混淆
编译
器最大的不同之处在于:它是直接从源码上做文章,也就是说
编译
过程本身就是
一个
混淆过程。 1.3 Jocky是如何工作的? Jocky混淆
编译
器是在Sun JDK中提供的
Java
编译
器(
java
c
)的基础上完成的,修改了其中的代码生成过程,对
编译
器生成的中间代码进行混淆,最后再生成class
文件
,这样
编译
和混淆只需要
一个
步骤就可以完成。另外可以在源程序中插入 符号保留指令 来控制哪些符号需要保留,将混淆过程与开发过程融合在一起,不需要
单独
的配置。 1.4 Jocky的作用 1.4.1代码混淆 如前文所述,混淆
编译
是Jocky的首要用途。我们举
一个
最简单的例子,下面的SimpleBean是未经混淆的class
文件
通过Jad反
编译
以后获得的源
文件
: 1 public class SimpleBean implements Serializable { 2 3 private String name = "myname"; 4 5 private List myList = null; 6 7 public void SimpleBean() { 8 myList = new ArrayList(10); 9 } 10 11 public void foo1() { 12 myList.add("name"); 13 } 14 15 private void foo2() { 16 } 17 18 private void writeObject(
java
.io.ObjectOutputStream out) 19 throws IOException { 20 21 } 22 23 } 下面是经Jocky混淆过的类
文件
,通过Jad反
编译
后产生的源
文件
: 1 public class SimpleBean implements Serializable { 2 3 private String _$2; 4 5 private List _$1; 6 7 public SimpleBean() { 8 _$2 = "myname"; 9 this; 10 JVM INSTR new #4 ; 11 JVM INSTR dup ; 12 JVM INSTR swap ; 13 10; 14 ArrayList(); 15 _$1; 16 } 17 public void foo1() { 18 _$1.add("name"); 19 } 20 21 private void _$1() { 22
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章