必须的java编译选项包括
1. 编译环境有哪些
问题一:java的编译环境是什么 JDK(Java Development Kit,Java开发包,Java开发工具)是一个写Java的applet和应用程序的程序开发环境。它由一个处于操作系统层之上的运行环境还有开发者编译,调试和运行用Java语言写的applet和应用程序所需的工具组成。
JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK(Software development kit)。
JDK包含的基本组件包括:
・javac C 编译器,将源程序转成字节码
・jar C 打包工具,将相关的类文件打包成一个文件
・javadoc C 文档生成器,从源码注释中提取文档
・jdb C debugger,查错工具
JDK中还包括完整的JRE(Java Runtime Environment,Java运行环境),也被称为private runtime。包括了用于产品环境的各种库类,以及给开发员使用的补充库,如国际化的库、IDL库。
JDK中还包括各种例子程序,用以展示Java API中的各部分。
从初学者角度来看,采用JDK开发Java程序能够很快理解程序中各部分代码之间的关系,有利于理解Java面向对象的设计思想。JDK的另一个显着特点是随着Java (J2EE、J2SE以及J2ME)版本绩升级而升级。但它的缺点也是非常明显的就是从事大规模企业级Java应用开发非常困难,不能进行复杂的Java软件开发,也不利于团体协同开发。
JDK一般有三种版本:
SE(J2SE),standard edition,标准版,是我们通常用的一个版本
EE(J2EE),enterpsise edtion,企业版,使用这种JDK开发J2EE应用程序,
ME(J2ME),micro edtion,主要用于移动设备、嵌入式设备上的java应用程序
问题二:C语言的编译环境用哪个? 哪个不要脸的说TC 丢人
反而是有些垃圾用功能较强的编译工具
用TC,学会自己写函数 记住不要用中文的
那些说TC丢人的就是用的中文,英语都不懂还弄个毛编程
朋饥,我建议你坚持用TC2.0, 对新手最有帮助的!
问题三:c程序语言中的编译系统是什么?编译环境又什么什么? C语言代码是.C的文本文件。
需要用编译程序把.C文件翻译.OBJ,然后用连接程序再弄成.EXE文件。
编译程序就是那个把.C变成.OBJ的程序
编译环境就是把编译程序、连接程序以及其他一些方便程序员写程序的东西综合在
一起形成的一套系统,程序编译环境...
希望对你有帮助
问题四:C++编译软件和环境有哪些? 用DEV C++吧,我一直用这个
问题五:Renesas MCU的编译环境有哪些? 你可以登录官网查询
问题六:C++的编译器都有哪些啊?谢谢!!!! 编译器很多的:
Visual C++
GNU C++
Inter C++
Sun C++
clang
。。。。。
等等。
一般都用VC和GNU C++,其他的都是专业人士使用的。。。。
楼上的回答是复制互。。。。太NC
关于IDE,C++有很多,一些其他语言的IDE现在也支持C++了
给你介绍一些:
Visual Studio系列(目前最新版本是VS2013)
Dev C++(目前最新非官方版是Dev c++ 5.4.1)
Code Block
NetBeans
C-Free(貌似不好用)
。。。
问题七:编译程序与集成开发环境有什么不同?举例说ming 以下选自网络:
集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。
换句话说,编译器只是集成开发环境的一部分。
比如最常见的集成开发环境:Visual Studio(其使用的编译器是cl(貌似今年会集成clang编译器))。
除cl外,比较常见的编译器还有gcc。
问题八:C++的开发环境有哪些?哪个C++的开发环境要好一些呢? c++builder 2010 最好用了。
初学者,最好不要去学VC鸡c++并身就难学了,还要来一个VC。
还是用c++builder,入门简单,上手容易,
但你C++用熟了,再去整VC事斗功倍,不听老人言,吃亏在眼前。
问题九:什么是集成开发环境? development SDK
就是写代码,编译,链接做在一个场件中的东东
比如VB.NET ,turbo C
你知道,从前编写程序不是这样的,通常需要你在记事本中把代码写好存盘,然后以这个文件为参数,运行编译程序,链接程序,最后才能生成可执行的机器代码
2. 如何编译一个java文件
javac 用于编译Java文件,格式为:
java [options] [sourcefiles] [@files]
其中:
options:命令行选项;
sourcefiles:一个或多个要编译的源文件;
@files:一个或多个对源文件进行列表的文件,有时候要编译的文件很多,一个个敲命令会显得很长,也不方便修改,可以把要编译的源文件列在文件中,在文件名前加@,这样就可以对多个文件进行编译,对编译一个工程很有用,方便,省事。
有几个比较重要的选项:
-d 用于指定编译成的class文件的存放位置,缺省情况下不指定class文件的存放目录,编译的class文件将和源文件在同一目录下;
-classpath 可以简写成-cp,用于搜索编译所需的class文件,指出编译所用到的class文件的位置,如jar、zip或者其他包含class文件的目录,指定该选项会覆盖CLASSPATH的设定;
-sourcepath用于搜索编译所需的源文件(即java文件),指定要搜索的源文件的位置,如jar、zip或其他包含java文件的目录;
需要注意windows下和linux下文件路径分隔符和文件列表(即-classpath和-sourcepath指定的文件)分隔符的区别:
windows下文件路径分隔符用 \ ,文件列表分隔符用分号 ;
linux下文件路径分隔符用 / ,文件列表分隔符用冒号 :
3. 什么是Java代码的编译与反编译
Java代码的编译与反编译
2017-02-21Hollis数盟
一、什么是编译
1、利用编译程序从源语言编写的源程序产生目标程序的过程。
2、用编译程序产生目标程序的动作。编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;语义检查和中间代码生成;代码优化;目标代码生成。主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息。
二、什么是反编译
计算机软件反向工程(Reverseengineering)也称为计算机软件还原工程,是指通过对他人软件的目标程序(可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,某些特定情况下可能推导出源代码。反编译作为自己开发软件时的参考,或者直接用于自己的软件产品中。
三、Java类的编译与反编译
我们在最初学习Java的时候,会接触到两个命令:javac和java,那个时候我们就知道,javac是用来编译Java类的,就是将我们写好的helloworld.java文件编译成helloworld.class文件。
class文件打破了C或者C++等语言所遵循的传统,使用这些传统语言写的程序通常首先被编译,然后被连接成单独的、专门支持特定硬件平台和操作系统的二进制文件。通常情况下,一个平台上的二进制可执行文件不能在其他平台上工作。而Javaclass文件是可以运行在任何支持Java虚拟机的硬件平台和操作系统上的二进制文件。
那么反编译呢,就是通过helloworld.class文件得到java文件(或者说是程序员能看懂的Java文件)
四、什么时候会用到反编译
1、我们只有一个类的class文件,但是我们又看不懂Java的class文件,那么我们可以把它反编译成我们可以看得懂的文件。
2、学习Java过程中,JDK的每个版本都会加入越来越多的语法糖,有些时候我们想知道Java一些实现细节,我们可以借助反编译。
五、反编译工具
1、javap
2、Jad:官网(墙裂推荐)
客户端:
可以在官网下载可执行文件,找到对应的操作系统的对应版本,然后进行安装使用。
因为我使用的是linux操作系统,所以我下载的是Linux版本的工具,这个工具下载好之后会有一个执行文件,只要在执行文件所在目录执行./jadhelloworld.class就会在当前目录下生成helloworld.jad文件,该文件里就是我们很熟悉的Java代码
Eclipse插件:
下载地址在官网下载插件的jar包,然后将jar包放到eclipse的plugins目录下‘在打开Eclipse,Eclipse->Window->Preferences->Java,此时你会发现会比原来多了一个JadClipse的选项,单击,在Pathtodecompiler中输入你刚才放置jad.exe的位置,也可以制定临时文件的目录。当然在JadClipse下还有一些子选项,如Debug,Directives等,按照默认配置即可。基本配置完毕后,我们可以查看一下class文件的默认打开方式,Eclipse->Window->Preferences->General->Editors->FileAssociations我们可以看到class文件的打开方式有两个,JadClipse和Eclipse自带的ClassFileViewer,而JadClipse是默认的。全部配置完成,下面我们可以查看源码了,选择需要查看的类,按F3即可查看源码
4. java入门基础知识
java入门基础知识如下:
一、JAVA运行机制。
三、JAVA程序组织形式;
Java程序是一个纯粹的面向对象的语言,因此Java程序必须以类(class)的形式存在。
类(class)是Java程序中的最小程序单位,Java程序不允许可执行语句,方法等成分独立存在,所有的程序部分都必须存放在类定义里。
一个Java源文件可以包含多个类定义,但最多只能包含一个public类定义。如果Java源文件里包含public类定义,则该源文件的文件名必须与这个public类的类名相同。
5. 编译java程序需要使用什么命令
编译命令是 javac
首先使用记事本编辑一段简单的Java代码
6. Java杩涢桩锛歋E6璋幂敤缂栬疟鍣ㄧ殑涓ょ嶆柟娉昜1]
銆銆鍦ㄥ緢澶钦ava搴旂敤涓闇瑕佸湪绋嫔簭涓璋幂敤Java缂栬疟鍣ㄦ潵缂栬疟鍜岃繍琛 浣嗗湪镞╂湡镄勭増链涓锛圝ava SE 鍙娄互鍓岖増链锛変腑鍙鑳介氲繃tools jar涓镄 sun tools javac鍖呮潵璋幂敤Java缂栬疟鍣 浣嗙敱浜巘ools jar涓嶆槸镙囧嗳镄凧ava搴 鍦ㄤ娇鐢ㄦ椂蹇呴’瑕佽剧疆杩欎釜jar镄勮矾寰 钥屽湪Java SE 涓涓烘垜浠鎻愪緵浜嗘爣鍑嗙殑鍖呮潵镎崭綔Java缂栬疟鍣 杩椤氨鏄痡avax tools鍖 浣跨敤杩欎釜鍖 鎴戜滑鍙浠ヤ笉鐢ㄥ皢jar鏂囦欢璺寰勬坊锷犲埌classpath涓浜
銆銆涓 浣跨敤JavaCompiler鎺ュ彛𨱒ョ紪璇慗ava婧愮▼搴
銆銆浣跨敤Java API𨱒ョ紪璇慗ava婧愮▼搴忔湁寰埚氭柟娉 鐜板湪璁╂垜浠𨱒ョ湅涓绉嶆渶绠鍗旷殑鏂规硶 阃氲繃JavaCompiler杩涜岀紪璇
銆銆鎴戜滑鍙浠ラ氲繃ToolProvider绫荤殑闱欐佹柟娉昰etSystemJavaCompiler𨱒ュ缑鍒颁竴涓狫avaCompiler鎺ュ彛镄勫疄渚
銆銆JavaCompiler piler = ToolProvider getSystemJavaCompiler();
銆銆JavaCompiler涓链镙稿绩镄勬柟娉曟槸run 阃氲繃杩欎釜鏂规硶鍙浠ョ紪璇慾ava婧愮▼搴 杩欎釜鏂规硶链 涓锲哄畾鍙傛暟鍜 涓鍙鍙桦弬鏁帮纸鍙鍙桦弬鏁版槸浠嶫ave SE 寮濮嬫彁渚涚殑涓涓鏂扮殑鍙傛暟绫诲瀷 鐢╰ype钬 argu琛ㄧず锛 鍓 涓鍙傛暟鍒嗗埆鐢ㄦ潵涓箦ava缂栬疟鍣ㄦ彁渚涘弬鏁 寰楀埌Java缂栬疟鍣ㄧ殑杈揿嚭淇℃伅浠ュ强鎺ユ敹缂栬疟鍣ㄧ殑阌栾淇℃伅 钖庨溃镄勫彲鍙桦弬鏁板彲浠ヤ紶鍏ヤ竴涓鎴栧氢釜Java婧愮▼搴忔枃浠 濡傛灉run缂栬疟鎴愬姛 杩斿洖
銆銆int run(InputStream in OutputStream out OutputStream err String arguments)
銆銆濡傛灉鍓 涓鍙傛暟浼犲叆镄勬槸null 闾d箞run鏂规硶灏嗕互镙囧嗳镄勮緭鍏 杈揿嚭浠f浛 鍗砈ystem in System out鍜孲ystem err 濡傛灉鎴戜滑瑕佺紪璇戜竴涓猼est java鏂囦欢 骞跺皢浣跨敤镙囧嗳杈揿叆杈揿嚭 run镄勪娇鐢ㄦ柟娉曞备笅
銆銆int results = tool run(null null null test java );
銆銆涓嬮溃鏄浣跨敤JavaCompiler镄勫畬鏁翠唬镰
銆銆import java io *;銆銆import javax tools *;銆銆public class test_pilerapi銆銆{銆 銆public static void main(String args[]) throws IOException銆 銆{銆 銆JavaCompiler piler = ToolProvider getSystemJavaCompiler();銆 銆int results = piler run(null null null test java );銆 銆System out println((results == )? 缂栬疟鎴愬姛 : 缂栬疟澶辫触 );銆 銆// 鍦ㄧ▼搴忎腑杩愯宼est銆 銆Runtime run = Runtime getRuntime();銆 銆Process p = run exec( java test );銆 銆BufferedInputStream in = new BufferedInputStream(p getInputStream());銆 銆BufferedReader br = new BufferedReader(new InputStreamReader(in));銆 銆String s;銆 銆while ((s = br readLine()) != null)銆 銆System out println(s);銆 銆}銆銆}銆銆public class test銆銆{銆 銆public static void main(String[] args) throws Exception銆 銆{銆 銆System out println( JavaCompiler娴嬭瘯鎴愬姛锛 );銆 銆}銆銆}
銆銆缂栬疟鎴愬姛镄勮緭鍑虹粨鏋
銆銆缂栬疟鎴愬姛
銆銆JavaCompiler娴嬭瘯鎴愬姛
銆銆缂栬疟澶辫触镄勮緭鍑虹粨鏋
銆銆test java: : 镓句笉鍒扮﹀彿
銆銆绗﹀彿 鏂规硶 printlnln(java lang String)
銆銆浣岖疆 绫 java io PrintStream
銆銆System out printlnln( JavaCompiler娴嬭瘯鎴愬姛锛 );
銆銆^
銆銆 阌栾
銆銆缂栬疟澶辫触
銆銆浜 浣跨敤StandardJavaFileManager缂栬疟Java婧愮▼搴
銆銆鍦ㄧ涓閮ㄥ垎鎴戜滑璁ㄨ鸿皟鐢╦ava缂栬疟鍣ㄧ殑链瀹规槗镄勬柟娉 杩欑嶆柟娉曞彲浠ュ緢濂藉湴宸ヤ綔 浣嗗畠纭涓嶈兘镟存湁鏁埚湴寰楀埌鎴戜滑镓闇瑕佺殑淇℃伅 濡傛爣鍑嗙殑杈揿叆 杈揿嚭淇℃伅 钥屽湪Java SE 涓链濂界殑鏂规硶鏄浣跨敤StandardJavaFileManager绫 杩欎釜绫诲彲浠ュ緢濂藉湴鎺у埗杈揿叆 杈揿嚭 骞朵笖鍙浠ラ氲繃DiagnosticListener寰楀埌璇婃柇淇℃伅 钥娈iagnosticCollector绫诲氨鏄痩istener镄勫疄鐜
銆銆浣跨敤StandardJavaFileManager闇瑕佷袱姝 棣栧厛寤虹珛涓涓狣iagnosticCollector瀹炰緥浠ュ强阃氲繃JavaCompiler镄刧etStandardFileManager()鏂规硶寰楀埌涓涓猄tandardFileManager瀵硅薄 链钖庨氲繃CompilationTask涓镄刢all鏂规硶缂栬疟婧愮▼搴
銆銆鍦ㄤ娇鐢ㄨ繖绉嶆柟娉曡皟鐢↗ava缂栬疟镞舵渶澶嶆潅镄勬柟娉曞氨鏄痝etTask 涓嬮溃璁╂垜浠璁ㄨ轰竴涓媑etTask鏂规硶 杩欎釜鏂规硶链夊备笅镓绀虹殑 涓鍙傛暟
銆銆getTask(Writer out JavaFileManager fileManager 銆銆DiagnosticListener diagnosticListener 銆銆Iterable options 銆銆Iterable classes 銆銆Iterable pilationUnits)
銆銆杩欎簺鍙傛暟澶у氭暟閮藉彲涓簄ull 瀹冧滑镄勫惈涔夋墍涓
銆銆路out: 鐢ㄤ簬杈揿嚭阌栾镄勬祦 榛樿ゆ槸System err
銆銆路fileManager: 镙囧嗳镄勬枃浠剁$悊
銆銆路diagnosticListener: 缂栬疟鍣ㄧ殑榛樿よ屼负
銆銆路options: 缂栬疟鍣ㄧ殑阃夐”
銆銆路classes 鍙备笌缂栬疟镄刢lass
銆銆链钖庝竴涓鍙傛暟pilationUnits涓嶈兘涓簄ull 锲犱负杩欎釜瀵硅薄淇濆瓨浜嗕綘𨱍崇紪璇戠殑Java鏂囦欢
銆銆鍦ㄤ娇鐢ㄥ畬getTask钖 闇瑕侀氲繃StandardJavaFileManager镄刧etJavaFileObjectsFromFiles鎴杇etJavaFileObjectsFromStrings鏂规硶寰楀埌pilationUnits瀵硅薄 璋幂敤杩欎袱涓鏂规硶镄勬柟寮忓备笅
銆銆Iterable getJavaFileObjectsFromFiles(銆銆Iterable files)銆銆Iterable getJavaFileObjectsFromStrings(銆銆Iterable names)銆銆String[] filenames = 钬;銆銆Iterable pilationUnits =銆銆fileManager getJavaFileObjectsFromFiles(Arrays asList(filenames));銆銆JavaCompiler CompilationTask task = piler getTask(null fileManager 銆銆diagnostics options null pilationUnits);銆銆链钖庨渶瑕佸叧闂璮ileManager close();
銆銆涓嬮溃鏄涓涓瀹屾暣镄勬紨绀虹▼搴
銆銆import java io *;銆銆import java util *;銆銆import javax tools *;銆銆public class test_pilerapi銆銆{銆 銆private static void pilejava() throws Exception銆 銆{銆 銆JavaCompiler piler = ToolProvider getSystemJavaCompiler();銆 銆// 寤虹珛DiagnosticCollector瀵硅薄銆 銆DiagnosticCollector diagnostics = new DiagnosticCollector();銆 銆StandardJavaFileManager fileManager = piler getStandardFileManager(diagnostics null null);銆 銆// 寤虹珛鐢ㄤ簬淇濆瓨琚缂栬疟鏂囦欢钖岖殑瀵硅薄銆 銆// 姣忎釜鏂囦欢琚淇濆瓨鍦ㄤ竴涓浠嶫avaFileObject缁ф圹镄勭被涓銆 銆Iterable pilationUnits = fileManager銆 銆 getJavaFileObjectsFromStrings(Arrays asList( test java ));銆 銆JavaCompiler CompilationTask task = piler getTask(null fileManager 銆 銆diagnostics null null pilationUnits);銆 銆// 缂栬疟婧愮▼搴忋 銆boolean success = task call();銆 銆fileManager close();銆 銆System out println((success)? 缂栬疟鎴愬姛 : 缂栬疟澶辫触 );銆 銆}銆銆 public static void main(String args[]) throws Exception銆 銆{銆 銆pilejava();銆銆 }銆銆}
銆銆濡傛灉𨱍冲缑鍒板叿浣撶殑缂栬疟阌栾 鍙浠ュ笵iagnostics杩涜屾壂鎻 浠g爜濡备笅
銆銆for (Diagnostic diagnostic : diagnostics getDiagnostics())銆銆System out printf(銆銆 Code: %s%n +銆銆 Kind: %s%n +銆銆 Position: %s%n +銆銆 Start Position: %s%n +銆銆 End Position: %s%n +銆銆 Source: %s%n +銆銆 Message: %s%n 銆銆diagnostic getCode() diagnostic getKind() 銆銆diagnostic getPosition() diagnostic getStartPosition() 銆銆diagnostic getEndPosition() diagnostic getSource() 銆銆diagnostic getMessage(null));銆銆琚缂栬疟镄则est java浠g爜濡备笅 銆銆public class test銆銆{銆銆 public static void main(String[] args) throws Exception銆 銆{銆 銆aa; //阌栾璇鍙ャ 銆System out println( JavaCompiler娴嬭瘯鎴愬姛锛 );銆 銆}銆銆}
銆銆鍦ㄨ繖娈典唬镰佷腑澶氩啓浜嗕釜aa 寰楀埌镄勭紪璇戦敊璇涓
銆銆Code: piler err not stmt銆銆Kind: ERROR銆銆Position: 銆銆Start Position: 銆銆End Position: 銆銆Source: test java銆銆Message: test java: : 涓嶆槸璇鍙ャ銆Success: false
銆銆阃氲繃JavaCompiler杩涜岀紪璇戦兘鏄鍦ㄥ綋鍓岖洰褰曚笅鐢熸垚 class鏂囦欢 钥屼娇鐢ㄧ紪璇戦夐”鍙浠ユ敼鍙樿繖涓榛樿ょ洰褰 缂栬疟阃夐”鏄涓涓鍏幂礌涓篠tring绫诲瀷镄処terable闆嗗悎 濡傛垜浠鍙浠ヤ娇鐢ㄥ备笅浠g爜鍦―鐩樻牴鐩褰曚笅鐢熸垚 class鏂囦欢
銆銆Iterable options = Arrays asList( d d:\ );銆銆JavaCompiler CompilationTask task = piler getTask(null fileManager 銆銆diagnostics options null pilationUnits);
銆銆鍦ㄤ笂闱㈢殑渚嫔瓙涓璷ptions澶勭殑鍙傛暟涓簄ull 钥岃佷紶阃掔紪璇戝櫒镄勫弬鏁 灏遍渶瑕佸皢options浼犲叆
銆銆链夋椂鎴戜滑缂栬疟涓涓狫ava婧愮▼搴忔枃浠 钥岃繖涓婧愮▼搴忔枃浠堕渶瑕佸彟鍑犱釜Java鏂囦欢 钥岃繖浜汮ava鏂囦欢鍙埚湪鍙﹀栦竴涓鐩褰 闾d箞杩椤氨闇瑕佷负缂栬疟鍣ㄦ寚瀹氲繖浜涙枃浠舵墍鍦ㄧ殑鐩褰
銆銆Iterable options = Arrays asList( sourcepath d:\src );
銆銆涓婇溃镄勪唬镰佹寚瀹氱殑琚缂栬疟Java鏂囦欢镓渚濊禆镄勬簮鏂囦欢镓鍦ㄧ殑鐩褰
lishixin/Article/program/Java/hx/201311/272397. 编译java程序的命令是什么,运行java应用程序的命令是什么
当前默认目录为C盘Users文件夹下的Administrator文件夹。一般而言,我们习惯改变当前目录。由于windows有磁盘分区,若要跳到其他磁盘,例如E盘,有几种方法:
1、输入命令: pushd 路径(此命令可将当前目录设为所希望的任一个已存在的路径)
2、输入命令: e: 转移到e盘,然后再输入 cd 转移到所希望的已知路径。
希望在windows命令行下使用javac、java、javap等命令,那么当前电脑必须安装了jdk,并且将jdk的bin目录添加到环境变量path下了。
拓展资料:
Java是一种编程语言,被特意设计用于互联网的分布式环境。Java具有类似于C++语言的“形式和感觉”,但它要比C++语言更易于使用,而且在编程时彻底采用了一种“以对象为导向”的方式。
使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的服务器端和客户端运行。另外,Java还可以被用来编写容量很小的应用程序模块或者applet,做为网页的一部分使用。applet可使网页使用者和网页之间进行交互式操作。