精华内容
下载资源
问答
  • Java 如何编译 Java 文件

    千次阅读 2016-12-10 10:18:28
    本文我们演示如何编译 HelloWorld.java 文件,其中 Java 代码如下:public class HelloWorld { public static void main(String []args) { System.out.println(“Hello World”); }} 接下来我们使用 javac 命令...

    本文我们演示如何编译 HelloWorld.java 文件,其中 Java 代码如下:public class HelloWorld {
    public static void main(String []args) {
    System.out.println(“Hello World”);
    }}
    接下来我们使用 javac 命令来编译 Java 文件,并使用 java 命令执行编译的文件:
    c:\jdk\demoapp> javac HelloWorld.java
    c:\jdk\demoapp> java HelloWorld
    以上代码实例输出结果为:
    Hello World

    学习Java的同学注意了!!!
    
    学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流,裙号码:392216227【长按复制】 我们一起学Java!
    展开全文
  • Mac 版本的反编译Java工具,自己用得好的工具。是个值得分享的东东。
  • Makefile编译Java文件

    千次阅读 2017-03-08 09:15:55
    下面是在Linux下用Makefile编译java文件简单示例,仅供参考 先简单说明下javac命令的简单用法: javac的通常用法: javac options:命令行选项;  sourcefiles:一个或多个要编译的源文件;  @files:一个...

    下面是在Linux下用Makefile编译java文件简单示例,仅供参考

    先简单说明下javac命令的简单用法:

    javac的通常用法:

    javac <options> <source 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下文件路径分隔符用 / ,文件列表分隔符用冒号 :


    java命令
            java 用于执行程序,格式如下:
            java [options] classfile
            options:命令行选项,一般用于 -classpath 指定要执行的文件所在的位置以及需要用到的类路径,包括jar、zip和class文件目录,会覆盖CLASSPATH的设定


    CURRENT_DIR := $(shell pwd)
    PROJECT := test
    SOURCE := source.list
    TARGET := test.jar
    OUT := out
    
    .PHONY: all jar
    
    all: jar
    
    javac: preinit
    	javac -cp $(CURRENT_DIR)/$(OUT)/$(PROJECT) -d $(CURRENT_DIR)/$(OUT)/$(PROJECT)  @$(CURRENT_DIR)/$(SOURCE)
    	rm -f $(CURRENT_DIR)/$(SOURCE)
    
    preinit:
    	@find $(CURRENT_DIR)/ -name "*.java" > $(CURRENT_DIR)/$(SOURCE)
    	mkdir -p $(CURRENT_DIR)/$(OUT)/$(PROJECT) 
    
    jar: javac
    	jar -cvf $(TARGET) -C $(CURRENT)/$(OUT)/$(PROJECT) .
    
    clean:
    	rm -rf $(OUT)


    运行编译好的jar包:

    java  -cp  test.jar  com.xxx.xxx

    其中‘xxx’部分可以用tab键补全,需要自己选择包名,


    参考文献:

    javac和java命令部分参考:

    http://blog.csdn.net/huagong_adu/article/details/6929817


    展开全文
  • 使用javac编译Java项目

    万次阅读 2019-06-01 11:47:06
    在缺乏eclipse和idea等IDE的工具的情况下,使用jdk自带的javac命令编译Java项目 当项目只有一个Java文件的时候,可以直接使用 javac 文件名.java 但是如果有多个源文件的时候, 例如项目结构如下: ...

    在缺乏eclipse和idea等IDE的工具的情况下,使用jdk自带的javac命令编译Java项目

    当项目只有一个Java文件的时候,可以直接使用

    javac 文件名.java

    但是如果有多个源文件的时候, 例如项目结构如下:

     

    com.rogueq.MainClass


    package com.rogueq;

    import com.rogueq.service.HelloService;
    import com.rogueq.service.impl.HelloServiceImpl;

    public class MainClass {
        public static void main(String[] args) {
            HelloService helloService = new HelloServiceImpl();
            helloService.sayHello();
        }
    }
     


    com.rogueq.service.HelloService


    package com.rogueq.service;

    public interface HelloService {
        void sayHello();
    }
     


    com.rogueq.service.impl


    package com.rogueq.service.impl;

    import com.rogueq.service.HelloService;

    public class HelloServiceImpl implements HelloService {

        @Override
        public void sayHello() {
            System.out.println("Hello world Manual Packaging !!!!!");
        }
    }
     


    此时我们可以使用命令

    javac -d out com/rogueq/*.java com/rogueq/service/*.java com/rogueq/service/impl/*.java

    -d 参数指定class文件的输出目录 

    以上路径皆为相对路径(相对当前目录), 也可以使用绝对路径

     

    上面的项目因为文件夹少,所以我们可以手动将所有还有java文件的文件路径写全,但是如果一个项目很大, 手动写则会比较耗时且容易出错。

    所以需要我们自己写一个工具类 ManualCompile.java


    import java.io.File;
    import java.io.IOException;
    import java.util.HashSet;
    import java.util.Set;

    public class ManualCompile {
        private static final String USER_DIR = System.getProperty("user.dir");
        private static final String FILE_SEPARATOR = System.getProperty("file.separator");
        private static final String OS_NAME = System.getProperty("os.name");

        public static void main(String[] args) throws IOException {
            String sourcePath = USER_DIR;
            if (args.length > 0) {
                sourcePath = getPath(args[0]);
            }

            Set<String> dirs = getSourceDirs(new File(sourcePath));

            String input = dirs.toString()
                    .replace(",", "")
                    .replace("[", "")
                    .replace("]", "");
                    
            System.out.println(input);        

            String output;
            if (args.length >= 2) {
                output = createDestDirectory(args[1]);
            } else {
                output = createDestDirectory("out");
            }
            
            // 打印将要执行的javac 命令
            System.out.println("javac -d " + output + " " + input);

            try {
                // 执行javac编译操作
                Runtime.getRuntime().exec("javac -d " + output + " " + input);
            } catch (IOException e) {
                e.printStackTrace();
                throw new RuntimeException("Failure");
            }

            System.out.println("SUCCESS, The dest path is [" + output + "]");

        }

        // 创建class文件的存放目录 默认路径为当前工作路径下的out文件夹
        private static String createDestDirectory(String args) {
            String destPath = getPath(args);
            File file = new File(destPath);
            if (!file.exists()) {
                file.mkdirs();
            }
            return file.getAbsolutePath();
        }

        // 获取要编译的java源文件的目录, 并在目录的末尾添加上了 *.java
        private static Set<String> getSourceDirs(File file) {
            Set<String> resultDirs = new HashSet<>();
            if (file.isFile() && file.getName().endsWith(".java")) {
                resultDirs.add(file.getAbsolutePath().replace(file.getName(), "*.java"));
                return resultDirs;
            } else if (file.isDirectory()) {
                File[] files = file.listFiles();
                for (File f : files) {
                    resultDirs.addAll(getSourceDirs(f));
                }
            }
            return resultDirs;
        }


        // 根据传入的参数获取当前项目工作路径
        private static String getPath(String sourcePath) {
            String path;
            if (sourcePath == null) {
                return USER_DIR;
            }
            path = sourcePath.trim();

            if (!path.contains(":") && OS_NAME.toLowerCase().contains("windows")) {

                if (path.startsWith("\\") || path.startsWith("/")) {
                    path = USER_DIR + path;
                } else {
                    path = USER_DIR + FILE_SEPARATOR + path;
                }

                if (!(path.endsWith("\\") || path.endsWith("/"))) {
                    path += FILE_SEPARATOR;
                }
            }

            if (OS_NAME.toLowerCase().contains("linux") && !path.startsWith("/")) {
                path = USER_DIR + FILE_SEPARATOR + path;
            }

            return path.replace("\\", FILE_SEPARATOR).replace("/", FILE_SEPARATOR);
        }
    }


    工具类功能说明如下:

            当不传入参数的时候, 将编译当前目录下的文件

            命令:  (java ManualClass)
            例如: 当前目录为 D:/project/hello  则会编译D:/project/hello 目录下的所有java文件 编译完成后的文件放置在 D:/project/hello/out文件夹中
            
            当只传入一个参数的时候, 将编译该参数指定的目录下的文件

            命令:(java ManualClass D:/project/hello)
            例如: 当前目录为 D:/project/hello  参数为 D:/project/haha 则会编译D:/project/haha下的所有java文件  编译完成后的文件放置在 D:/project/hello/out文件夹中

            当传入两参数的时候, 将编译第一个参数指定的目录下的文件 并把编译完成的class文件放入第二个目录指定的文件夹

            命令:(java ManualClass D:/project/hello D:/project/hello/dest)
            
            参数支持绝对路径和相对路径
                例如: D:/project/haha 或 /heihei 但不支持 ../
                
            总结: 
                   第一个参数为要编译的java的文件夹或java文件 默认是当前目录 
                   第二参数为编译完成的class文件的放置文件夹  默认是当前目录下的out文件夹(没有会自动创建)
                   路径格式支持绝对路径和相对路径, 但是不支持../    

     

     

    展开全文
  • 在beyond compare的菜单tools里选择import settings进行导入,这样在对比或者同步java的编译文件的时候就能...本工具不光能反编译java class文件,还有其他如office文件,不过实测效果不是很好,具体看导入时候的列表。
  • 设置class文件的生成位置 file->project structure out put 选择第二个...编译Java文件 点击要编译的java文件(已经设置为source文件),再点击build->rebuild default(ctrl+shift+f9)进行编译 过程中出现的问题

    设置class文件的生成位置

    file->project structure
    在这里插入图片描述out put 选择第二个设置输出位置

    设置resource和source

    方法:点击文件右键->make direction as

    需要运行和引用的java文件设置为source文件,将配置文件(xml)等设置为resource文件

    编译Java文件

    点击要编译的java文件(已经设置为source文件),再点击build
    有三种编译方式

    1. compile:对选定的java类文件进行全部编译,不管是否修改过
    2. rebuild:对选定的project进行全部编译,不管是否修改过
    3. make:对选定的目标(可以实java类或者project),选取修改过的文件进行编译

    过程中出现的问题

    Error:java: 无效的源发行版: xx

    解决方法:

    File -> Settings -> Bulid, Execution,Deployment -> Compiler -> Java Compiler
    设置 project bytecode version为自己使用的对应版本
    在这里插入图片描述File -> Project Structure -> Project
    设置相对应java jdk版本
    在这里插入图片描述同样是这个地方,modules,设置language level

    在这里插入图片描述设置一下module SDK
    在这里插入图片描述即可解决该问题

    项目中存在类,但是编译的时候显示未找到该类

    解决方法:需要的文件都需要包含在编译内容中

    展开全文
  • 第一种在Eclipse中编译Java文件:选中项目——点右键Refresh刷新一下即可。 第二种在Eclipse中编译Java文件:选择: project->clean.选中所要编译的项目,点OK即可。 第三种在命令提示符CMD中编译Java文件:打开...
  • 编译java源代码文件

    千次阅读 2019-12-25 11:31:04
    编译操作需要使用编译器来完成,在安装JDK时已经安装了...下面介绍一下使用编译器来编译Java源文件步骤: 1.首先切换到需要编译的源代码所在文件夹 输入“javac+源文件完整名称”,如下图: 编译之后会在...
  • ubuntu下编译java程序

    千次阅读 2019-04-08 09:13:10
    ubuntu下编译java程序 首先需要安装jdk,并配置好相应环境变量 下面以简单的HelloWorld为例 文件名为HelloWorld.java java代码: public class HelloWorld { public static void main(String args[]) { System....
  • Gradle编译java文件乱码问题

    千次阅读 2016-07-27 16:04:07
    已经安装Gradle很久了,一直没有深入地去研究。今天就简单试了一下将项目打成jar包。...编译Java文件提示乱码 build.gradle 编码处理 apply plugin: 'java' apply plugin: 'eclipse' tasks.withType(JavaCompile) {
  • VSCode配置调试编译java环境

    千次阅读 2019-12-29 18:48:38
    VSCode配置调试编译java环境 一.所需文件 安装好VSCode 下载jdk 下载连接JDK13.01 3.将下载好的jdk文件解压到合适的位置,后面会设置一些配置文件需要用到。(这里我解压到F盘) 4.安装java插件(有些插件不是必须...
  • 使用Makefile编译Java文件

    千次阅读 2017-05-24 08:04:16
    如何使用Makefile编译java源文件?熟悉C++的人都会觉得繁琐的编译链接语句很烦人,交给一个make命令就很方便了,在没有IDE的情况下JAVA的编译命令和路径有时候也让人觉得Confused,所以也希望用make命令代替; 对于...
  • 详细介绍如何用记事本编译java代码

    千次阅读 2019-03-10 14:34:09
    详细介绍如何用记事本编译java代码 1,先建立一个记事本写入代码,把后缀.txt改成.java 2,先安windows键,再按空格键,输入cmd,最后双击回车 3,如果文件没保存在C盘(保存在C盘的跳过这一步),输入所在的盘符:...
  • Mac安装Protobuf编译Java

    千次阅读 2016-01-27 12:55:01
    本文整理了再在Mac上安装Protobuf 和编译Java的详细过程 在Mac上安装protobuf创建一个java项目,编写.proto文件用protobuf编译生成java文件,测试用wire编译生成java文件,测试 1.protobuf下载地址:...
  • eclipse编译java文件

    万次阅读 2011-10-10 16:40:59
    以前一直意味eclipse有专门的一个按钮来编译java文件,今天发现其实不是,在我们编辑java的文件完,点击保存以后,eclipse会自动编译相应的java生成class文件。
  • 如何批量编译java文件,以及如何运行生成的文件? 首先我们先看下javac命令的常用操作选项: 常用参数: -encoding &lt;编码&gt; 有时候当我们的java文件不是默认的GBK编码的时候是需要在编译Class的时
  • 如何用shell脚本编译java工程

    千次阅读 2016-01-06 17:30:58
    编译java工程一般直接用IDE或者用Ant、Maven之类的工具,很少有人用纯shell来编译java工程。正好遇到这样一个应该,用这篇博文做一下记录。 案例:本人用eclipse写了一个java project,然后编译打成ja...
  • 点击进入_更多_Java千百问1、通过代码如何编译java文件编译器是一个命令行工具(jdk自带的编译工具javac,了解javac看这里:javac是什么),但也可以使用API来调用(一般的IDE都会使用这一组API来封装自己的编译功能...
  • eclipse 不自动编译 java 项目处理方法

    万次阅读 2016-12-10 14:46:21
    eclipse 不自动编译 java 项目时处理方法
  • 【问题引入】 很多时候,需要用到命令行来进行Java文件的编译。在用习惯了IDE 可能会不清楚如何在cmd命令行窗口进行编译,简单的都还好,带有包路径的可能会让很多人觉得...javac ClassName.java --- 编译Java...
  • 命令行编译java文件,运行class文件

    万次阅读 2018-09-18 22:21:08
    一、编译java文件的话,则需要先安装jdk环境。 安装JDK后配置环境变量 :计算机➡属性➡高级系统设置➡高级➡环境变量,在系统变量里:  1)新建JAVA_HOME,变量值为jdk路径,我的是C:\Program Files\Java\jdk...
  • 在上一篇文章《StringBuilder、StringBuffer与Java字符串处理》中,我们反汇编了Java字节码文件,通过查看编译器编译后的字节命令,我们能够更清楚地了解Java在字符串拼接等方面的处理机制。 那么,我们如何反...
  • 1.Idea编译java项目,target里面没有resource相关文件 场景: xml 配置plugin没有异常,就是maven install ,编译target之后,无法将source目录下面的文件添加进去 原因: moduls配置没有将resource目录当成...
  • 最近,在利用java做一个Online Judge系统,里面涉及到编译java文件为class文件,当时看过API文档,也百度过别人的一些博客,感觉都不太符合个人胃口。虽然,有说得详细的,也有很多权威的,也有很多使用例子的。但是...
  • 描述:使用cmd、powershell、vscode编译java文件提示不可映射字符,比如代码中出现中文了就会出现这个问题,如下图所示解决:在编译的时候指定编码即可解决问题(如指定为UTF-8编码) *编译不带包的java文件javac -...
  • Java 控制台编译Java文件并调用

    千次阅读 2017-04-02 15:10:08
    内容: 演示如何使用控制台将Java文件编译成class文件,然后在控制台上调用步骤:1.首先创建一个Java文件,如下所示:public class Hello { public static void main(String[] args) { System.out.println("Hello ...
  • 使用ant编译java项目的简单实例

    千次阅读 2015-06-11 16:35:49
    使用java开发语言的同学,这是一个最基本的使用ant编译java project的步骤,仅供参考!
  • 好坏不评说,这里说下在IntelliJ中如何编译Java工程。这里主要讲下如何创建Java工程及如何编译出可执行jar。 第一步 运行IntelliJ IDEA,选择创建工程                   第二步 在左侧选择...
  • (原因:没有指名编码风格)javac命令中文乱码问题解决今天在做web socket通信的时候需要将两个java文件同时跑起来,使用命令行编译java文件时出现javac编译java文件成class文件出现中文乱码问题,如下图: ...
  • 编译java文件

    千次阅读 2018-08-15 11:45:31
    1.安装jdk 并配置环境变量 2新建TXT文件  Hi.txt-------&gt;&gt; public class Hi{ ... public static void main(String[] arg){ ...hijava"...将后缀名改为 .java ----&...Hi.java...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,313,184
精华内容 525,273
关键字:

编译java

java 订阅