标签: javac

javac选项以递归方式编译给定目录下的所有java文件

我正在使用javac编译器来编译项目中的java文件.这些文件分布在几个包像这样:com.vistas.util,com.vistas.converter,com.vistas.LineHelper,com.current.mdcontect.

每个包都有几个java文件.我正在使用这样的javac:

javac com/vistas/util/*.java com/vistas/converter/*.java
      com.vistas.LineHelper/*.java com/current/mdcontect/*.java
Run Code Online (Sandbox Code Playgroud)

(在一行)

而不是提供这么多路径,我怎么能要求编译器递归编译来自父com目录的所有java文件?

java javac

118
推荐指数
5
解决办法
13万
查看次数

javac:找不到命令

我使用命令在我的CentOS版本5.5机器上安装了java yum install java.但我无法使用javac编译类.

我需要安装任何其他包吗?

我试图找到javac可执行文件,但我无法找到它.

/usr/bin/java链接如下:
/usr/bin/java- > /etc/alternatives/java
/etc/alternatives/java- >/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java

我看过以下输出yum list installed |grep java:

java-1.6.0-openjdk.x86_64              1:1.6.0.0-1.16.b17.el5          installed
tzdata-java.x86_64                     2011b-1.el5                     installed
Run Code Online (Sandbox Code Playgroud)

java compilation centos javac

105
推荐指数
3
解决办法
23万
查看次数

javac错误:仅在显式请求注释处理时才接受类名

编译我的java程序时出现此错误:

error: Class names, 'EnumDevices', are only accepted if annotation 
processing is explicitly requested
1 error
Run Code Online (Sandbox Code Playgroud)

这是java代码(我在Ubuntu上运行它).

import jcuda.CUDA;    
import jcuda.driver.CUdevprop;    
import jcuda.driver.types.CUdevice;

public class EnumDevices {

  public static void main(String args[]) {
     CUDA cuda = new CUDA(true);    
        int count = cuda.getDeviceCount();

        System.out.println("Total number of devices: " + count);

        for (int i = 0; i < count; i++) {

          CUdevice dev = cuda.getDevice(i);
          String name = cuda.getDeviceName(dev);
          System.out.println("Name: " + name);
          int version[] = cuda.getDeviceComputeCapability(dev);

          System.out.println("Version: " + 
              String.format("%d.%d", version[0], …
Run Code Online (Sandbox Code Playgroud)

java javac

100
推荐指数
5
解决办法
28万
查看次数

Java类文件的创建是否确定?

使用相同的JDK(即相同的javac可执行文件)时,生成的类文件是否始终相同?可能会有所不同,具体取决于操作系统硬件?除JDK版本外,是否还有其他因素导致差异?是否有任何编译器选项可以避免差异?仅在理论上可能存在差异,或者Oracle是否javac实际为相同的输入和编译器选项生成不同的类文件?

更新1我对生成感兴趣,即编译器输出,而不是类文件是否可以在各种平台上运行.

更新2通过'相同的JDK',我也意味着相同的javac可执行文件.

更新3 Oracle编译器中理论差异与实际差异的区别.

[编辑,添加释义问题]
"在不同的平台上运行相同的javac可执行文件会产生不同的字节码的情况是什么?"

java compiler-construction javac

93
推荐指数
3
解决办法
7599
查看次数

Java:如何编译整个代码目录结构?

用例很简单.我得到了使用Eclipse创建的源文件.因此,有一个深层目录结构,任何Java类都可以引用同一个子,兄弟或父文件夹中的另一个Java类.

如何使用javac从终端编译整个东西?

java compilation directory-structure javac

78
推荐指数
7
解决办法
13万
查看次数

如何故意导致自定义java编译器警告消息?

我要做一个丑陋的临时黑客,以便在我们等待修复外部资源时解决阻塞问题.除了用一个可怕的评论和一堆FIXME来标记它之外,我很乐意让编译器抛出明显的警告信息作为提示,所以我们不要忘记把它拿出来.例如,类似于:

[javac] com.foo.Hacky.java:192: warning: FIXME temporary hack to work around library bug, remove me when library is fixed!
Run Code Online (Sandbox Code Playgroud)

有没有办法可以使用我选择的消息引起有意的编译器警告?如果做不到这一点,最简单的事情是添加到代码中以抛出现有警告,可能在违规行的字符串中有一条消息,以便在警告消息中打印出来?

编辑:不推荐的标签似乎没有为我做任何事情:

/**
 * @deprecated "Temporary hack to work around remote server quirks"
 */
@Deprecated
private void doSomeHackyStuff() { ... }
Run Code Online (Sandbox Code Playgroud)

在eclipse或sun javac 1.6(从ant脚本运行)中没有编译器或运行时错误,它肯定正在执行该函数.

java javac compiler-warnings

74
推荐指数
6
解决办法
3万
查看次数

Maven无法找到Javac编译器:

当我尝试生成一个war文件时,它会显示一些错误

[ERROR] Unable to locate the Javac Compiler in:
[ERROR] C:\Program Files\Java\jre7\..\lib\tools.jar
Run Code Online (Sandbox Code Playgroud)

当我这样做echo %path%时显示

 C:\Windows\System32;D:\name\name1\Softwares\Maven\apache-maven-3.0.4\b
in;C:\Program Files\Notepad++\;%JDK_HOME%
Run Code Online (Sandbox Code Playgroud)

当我做 echo %JDK_HOME%

D:\name\name\core java\software\Java\Java_1.6.0_04_win\jdk1.6.0_04\bin
Run Code Online (Sandbox Code Playgroud)

当我的环境变量是jdk时,我不知道为什么maven会引用jre.我还将已安装的JRE更改为jdk1.6.

java javac maven

73
推荐指数
4
解决办法
12万
查看次数

在ant javac中设置Java的目标版本

我需要使用ant(1.7.0)编译一个jar文件,以在特定版本的Java(1.5)下运行.我目前在我的机器上安装了Java 1.6.我试过设置:

<target name="compile">
  <javac compiler="javac1.5" target="1.5" srcdir=.../>
</target>
Run Code Online (Sandbox Code Playgroud)

我也删除了

<property name="build.compiler" value="modern"/>
Run Code Online (Sandbox Code Playgroud)

并且没有属性文件.我在Linux/SUSE上运行Java 1.6

还有一种简单的方法可以确定jar文件中预期的Java版本.

ant javac

65
推荐指数
4
解决办法
13万
查看次数

Java编译器优化

最近,我正在读这篇文章.

根据那篇文章,Java Compiler即javac在生成字节码时不执行任何优化.这是真的吗?如果是这样,那么它可以作为中间代码生成器实现,以消除冗余并生成最佳代码吗?

java optimization javac

62
推荐指数
4
解决办法
2万
查看次数

Java 9编译器中的--release标志是什么?

Java 9 javac有一个新的标志--release:

> javac --help
...

--release <release>
    Compile for a specific VM version. Supported targets: 6, 7, 8, 9
Run Code Online (Sandbox Code Playgroud)

-source-target旗帜有什么不同?它只是一个捷径-source X -target X吗?

java javac java-9

62
推荐指数
2
解决办法
8162
查看次数