精华内容
下载资源
问答
  • 两个测试所需文件 public class Hello{ public void sayHello(){ System.out.println("Hello"); } } public class Demo{ public static void main(String[] args) { ...同目录下javac编译执行 $ ls

    两个测试所需文件

    public class Hello{
        public void sayHello(){
            System.out.println("Hello");
        }
    }
    
    public class Demo{
        public static void main(String[] args) {
            Hello Hello = new Hello();
            Hello.sayHello();
        }
    }
    

    同目录下javac编译执行

    $ ls
    Demo.java
    Hello.java
    
    $ javac Demo.java
    $ java Demo
    

    引入不同目录依赖编译执行

    $ ls
    Demo.java
    libs/
        Hello.java
    
    $ javac -classpath ./libs Demo.java
    $ java -classpath .:libs Demo
    

    引入jar包

    将Hello.java打成jar包

    $ cd libs
    $ javac Hello.java
    $ jar -cvf hello.jar Hello.class
    

    引入jar包执行

    $ ls 
    Demo.java
    libs/
        hello.jar
    
    $ javac -classpath ./libs/hello.jar  Demo.java
    $ java -classpath .:./libs/hello.jar  Demo
    

    优化

    $ javac -encoding UTF-8 -classpath ./libs -d classes Demo.java
    
    # 参数说明
    -encoding UTF-8    定源文件使用的字符编码
    -classpath ./libs  指定查找用户类文件和注释处理程序的位置
    -d classes         指定放置生成的类文件的位置,必须存在
    Demo.java          source files
    
    $ cd classes 
    $ java Demo
    
    展开全文
  • 操作背景:我在eclipse建立了个HelloWorld.java文件,格式UTF-8,然后复制保存到C:\Users\alex\test目录下,在此处运行按住Shift+右键调出cmd命令窗口,输入命令:javacHelloWorld.java, 然后报错:HelloWorld.java...

    操作背景:我在eclipse建立了个HelloWorld.java文件,格式UTF-8,然后复制保存到C:\Users\alex\test目录下,在此处运行按住Shift+右键调出cmd命令窗口,输入命令:javac HelloWorld.java,

    然后报错:HelloWorld.java:6: 错误: 编码GBK的不可映射字符

    解决办法:

    方法一:带上编码utf-8,运行命令:javac -encoding utf-8 HelloWorld.java,

    结果,同目录下出现HelloWorld.class文件,编译成功!

    方法二:用记事本另存为ANSI编码格式的,直接运行命令:javac HelloWorld.java

    出现对应的class文件,成功!

     

    注意:class类名必须与文件名保持一致!!

    如果不一致会报错:b.java:6: 错误: 类a是公共的, 应在名为 a.java 的文件中声明(我把类a的文件名改为b.java后)

    例如:上述HelloWorld.java文件里含有的class名必须为HelloWorld,如:public class HelloWorld {}

    如果在编译过程中出现报错:错误: 非法字符: \65279...错误: 需要class, interface或enum

    就必须先把java文件转为无BOM的utf-8的编码:用notepad++就可以实现转换保存。

    这是因为:由于JDK是国际版的,在编译的时候,如果我们没有用-encoding参数指定我们的JAVA源程序的编码格式,则javac.exe首先获得我们操作系统默认采用的编码格式,也即在编译java程序时,若我们不指定源程序文件的编码格式,JDK首先获得操作系统的file.encoding参数(它保存的就是操作系统默认的编码格式,如WIN2k,它的值为GBK),然后JDK就把我们的java源程序从file.encoding编码格式转化为JAVA内部默认的UNICODE格式放入内存中。然后,javac把转换后的unicode格式的文件进行编译成.class类文件,此时.class文件是UNICODE编码的,它暂放在内存中,紧接着,JDK将此以UNICODE编码的编译后的class文件保存到我们的操作系统中形成我们见到的.class文件。对我们来说,我们最终获得的.class文件是内容以UNICODE编码格式保存的类文件,它内部包含我们源程序中的中文字符串,只不过此时它己经由file.encoding格式转化为UNICODE格式了。当我们不加设置就编译时,相当于使用了参数:javac -encoding gbk XX.java,当然就会出现不兼容的情况。

    解决办法是:应该使用-encoding参数指明编码方式:javac -encoding UTF-8 XX.java,这下没警告了,运行也正确了在JCreator 4中设置:菜单:Configure --> Options --> JDK Tools --> Compiler,选中<Default>,然后选Edit,Parameters里面,最前面添加:-encoding UTF-8。

    Parameters原来的

    默认值为:-classpath "$[ClassPath]" -d "$[OutputPath]" $[ModJavaFiles]

    修改后为:-encoding UTF-8 -classpath "$[ClassPath]" -d "$[OutputPath]" $[ModJavaFiles]

    参考:

    http://blog.csdn.net/l1028386804/article/details/46583279

    http://blog.csdn.net/testcs_dn/article/details/45872893

    http://bbs.csdn.net/topics/390374418

    https://blog.csdn.net/superit401/article/details/74452202

    https://blog.csdn.net/qq_40374604

    展开全文
  • NULL 博文链接:https://qn-lf.iteye.com/blog/990975
  • javac编译.java文件

    千次阅读 2017-09-25 21:19:30
    javac编译.java文件 找到你编写的.java的文件,我的在D:\Java编程\Hello\src 在DOS窗口输入cmd之后敲d:进入D盘(你放.java文件的盘) 输入cd跳转到你的文件夹,例如我的就: D:>cd Java编程 D:\Java编程>cd ...

    用javac编译.java文件

    • 找到你编写的.java的文件,我的在D:\Java编程\Hello\src
    • 在DOS窗口输入cmd之后敲d:进入D盘(你放.java文件的盘)
      输入cd跳转到你的文件夹,例如我的就:
      D:>cd Java编程
      D:\Java编程>cd Hello
      D:\Java编程\Hello>cd src
      这样一层一层地进入到你放.java文件的位置
      这里写图片描述
    • 然后就可以用javac编译啦,像这样:
      D:\Java编程\Hello\src>javac Helloworld.java
      编译好了之后应该是看不到什么提示的(如果没有错误的话),但是这时生成了.class文件
      如果错误的话他会提示你!照着提示改就好了
    • 最后就可以输入:D:\Java编程\Hello\src>java Helloworld
    • 这里写图片描述
      最后的整体效果
      这里写图片描述

    ———我比较笨研究了两天,遇到过n种问题:
    1.不知道怎么打开d盘文件
    2.javac无效,这个是路径装错了
    3.运行javac编译的时候忘记在文件名后边打.javac
    ……
    兜兜转转终于解决了,开心o( ̄▽ ̄)ブ

    展开全文
  • 今天,笔者遇到了一个小问题:在使用原始的javac编译Java文件时,如果当前类文件对其他类有依赖,那么,就可能会出现问题。 举例如下:笔者在桌面新建一个文件夹test,然后建立两个类:A.java和B.java,如下图: ...

    javac编译class文件

    今天,笔者遇到了一个小问题:在使用原始的javac编译Java类文件时,如果当前类文件对其他类有依赖,那么,就可能会出现问题。
        举例如下:笔者在桌面新建一个文件夹test,然后建立两个类:A.java和B.java,如下图:
         
        
    两个类的代码都很简单,其中B类对A类有依赖:
         
    然后,我们分3种情况分析:

    情况① :
        直接用javac命令编译两个源文件(先编译被依赖的类A,再编译类B),结果如下:


        可以看到编译成功,生成了对应的class文件。

    情况②: 
        删去情况①中生成的class文件,我们在B.java中利用import语句导入一个包:

    然后重新编译这两个文件,结果如下:


     
        可以看到,B.java文件编译失败,这是因为javax.servlet.*包并非Java标准类库中的内容,因此编译器找不到对应的包,就会出错。
        我们将需要的jar文件放入当前目录,并使用-cp参数将库文件导入,然后继续编译:
    编译结果如下:


     
        此时,依旧编译失败,但提示的是找不到类A,这是因为,默认情况下,编译器会在当前目录下寻找需要的类文件,我们使用cp参数修改了类文件查找路径,而并没有包含当前目录,因此,编译失败。我们在使用cp参数时,需要将当前目录包含进去:
         
        可以看到编译成功。 

    情况③:
        删除情况②生成的class文件,我们在A.java和B.java文件中添加package语句,将文件夹test记录在代码中:

        继续使用情况②中编译成功的命令来编译,结果如下:

        可以看到,编译器再一次找不到类A,这是因为,添加了package语句后,编译器需要找的是test.A类,编译器会首先找到test目录,然后再从test目录中找到A,此时当前目录中(test目录内)不存在test子目录,因此,编译器找不到A类,编译失败。这说明我们包含的类路径需要包括类所在的包,这里需要包含test目录的上一级子目录。
        修改命令行,编译结果如下:
         
    可以看到,编译成功。 

    通过对以上三种情况的分析,这里总结如下:
    (1)利用javac进行编译时,默认情况下的类搜索路径为当前路径。
    (2)如果类中包含了Java标准类库中以外的类,则需要利用-cp参数指定类搜索路径。
    (3)如果需要的类指定了类所在的包,那么-cp参数指定的类搜索路径应包含该类所在的包。

    展开全文
  • 关于再cmd中用javac编译java文件时,出现乱码和报错. 在编译的时候指定编码即可解决问题(如指定为UTF-8编码) 编译不带包的java文件javac -encoding utf-8 DatabaseConnection.java 编译带包的java文件:javac -...
  • Hadoop 2.x 下使用javac编译java文件

    千次阅读 2018-03-30 22:50:29
    2.x系列已经没有hadoop-core的jar包了,变成一个个散的了,分布在$HADOOP_HOME/share/hadoop下vim /etc/profileHADOOP_HOME=/home/finch/hadoop-2.7.export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/...
  • javac编译java文件

    2013-04-09 11:29:50
    2、com.soap),client包下有个client.java文件,这个要引用soap下的java文件。首先是乱码问题,这个easy指定编码格式javac *.java -encoding UTF-8就解决了;然后就是一直报找不到包文件,弄了好久都
  • javac 编译javajavac is a tool used to compile Java applications or source code. javac reads class and interface definitions and compiles them into bytecode class files. These class files have *.class ...
  • 带包的java文件javac编译

    千次阅读 2017-10-26 19:57:00
    javacjava命令行中的-classpath选项这是个很基础的问题,但是因为基本上都是用现有的IDE工具 来开发java程序,所以很少有人意识到这一点。...-sourcepath, 设定要搜索编译所需java 文件的路径,可以是目
  • 如何使用javac java来编译运行java文件

    千次阅读 2018-10-19 15:09:34
    注意java编译后生成的字节码文件有默认的文件名,文件名总是以源文件所定义类的类名作为主文件名,以.class作为后缀名。 这意味着如果一个源文件里定义了多个类,将编译生成多个字节码文件,一次编译可能生成多个...
  • 使用javac编译Java项目

    万次阅读 2019-06-01 11:47:06
    在缺乏eclipse和idea等IDE的工具的情况下,使用jdk自带的javac命令编译Java项目 当项目只有一个Java文件的时候,可以直接使用 javac 文件名.java 但是如果有多个源文件的时候, 例如项目结构如下: ...
  • 问题: 多个*.java文件编译 *.java文件依赖其他的jar包
  • 前端编译器: 将Java文件编译为class文件的编译器,目前主要有以下两个,Sun提供的Javac 和Eclipse JDT中的增量式编译器(ECJ) JIT编译器: 虚拟机后端运行期编译器,把字节码转换为机器码的过
  • (原因:没有指名编码风格)javac命令中文乱码问题解决今天在做web socket通信的时候需要将两个java文件同时跑起来,使用命令行编译java文件时出现javac编译java文件成class文件出现中文乱码问题,如下图: ...
  • 试了以下网上的各种说法,什么,chcp65001 chcp 936等等,都没有用 因为dos下是没有utf8编码的 改死了也没用 只有在编译的时候使用 javac encoding utf-8 test.java
  • 需要将引用的包放到:/usr/java/jdk1.7.0_75/jre/lib/ext 也就是jdk安装目录/jre/lib/ext 目录下面 转载于:https://www.cnblogs.com/lvlv/p/4337869.html
  • javajavac编译运行java程序

    千次阅读 2015-08-06 20:59:42
    目录目录 ...但是在学习过程中,我想在命令行测试一些JVM参数的时候,发现自己脱离了IDE,竟然无法直接编译java程序!!我的原则不能抱怨太多,像个Loser,不会的就花时间补回来。下面,主要是总结一些如何在
  • javac编译java源文件

    2016-10-16 22:58:36
    假设有一个java源文件,代码如下 public class A{ class B{ } public class C{ } static class D{ } } class E{ ...使用javac命令执行以上java文件,会生成如下5个class文件 1.A.cla
  • /Java初学者,记录自己从开始学习Java的过程中遇到的一些问题以及解决方法。。。。。-------------------------------------------------------------------------------------------------------------------------...
  • 3.一个Java文件中只能有一个public类; 4.如果文件中不止一个类,文件名必须与public类名一致; 5.如果文件中不止一个类,而且没有public类,文件名可与任一类名一致。  当编写一个Java源代码文件时,此文件通常被...
  • hello, I'm Shendi 因为最近在写自己的工具包,在控制台模块有个需求,就是想与 JShell ...还有一种是Java语言内置的脚本解析器,不过那个是解析 js 的,并不是Java(可以进行一些+-*/等js操作) 对于脚本的这...
  • 如何批量编译java文件,以及如何运行生成的文件? 首先我们先看下javac命令的常用操作选项: 常用参数: -encoding &lt;编码&gt; 有时候当我们的java文件不是默认的GBK编码的时候是需要在编译Class的时
  • //能够执行java 和 javac 就证明你的环境变量已经配置好了,其实 classpath 可以不配置 //假如有如下文件:H:\code\Hello.java public class Hello{  public static void main(String[]args){ ...
  • 昨天遇到了一个奇葩的需求:把伪造的数据持久化到Linux服务器的Redis中 ... 写一个.java的方法,使用jedis 把相应的key 和value写入到Redis中 但是,由于数据条数很多,且都是比较长的JSON...
  • Javac编译找不到符号 报错 找不到符号 如果是两个.java有调用关系,需要同时编译 首先我检查了下代码,发现并没有问题,然后将A.java文件的内容复制到D.java中,发现程序能正常运行,而之前的两个java类在同一个...
  • 我们创建了一个文件,在这里我假设是一个A.java文件,我们注意看它的路径,是在D盘中的demo文件夹中。 但是当我们打开dos窗口时惊奇的发现。 其实二者是不匹配的。有人(可以指我)会认为环境配置好之后我...
  • 转载自https://blog.csdn.net/congcongsuiyue/article/details/42174499下面分几种情况来探讨,这三种情况也是我们常用的编译java源文件的方法1、javac在控制台编译java类文件。 通常我们手动建立一个java文件Demo....
  • Cmd中怎么编译java文件javac和java 本文写给和我一样的java初学者 相信大家最开始学习java编程时一定会用到命令提示符(win+R再输入cmd可快速进入此界面)。 在命令提示符窗口使用javac和java编译java文件,但这两者...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 115,603
精华内容 46,241
关键字:

javac编译java文件

java 订阅