Tag: javac

java中导入类文件

我有一个主目录(包含main.java)和一个子目录(包含child.java)。 我的问题是如何在main.java中实例化child.java 我让孩子上课了。 并添加第1行作为package mypackage 我用javac -d . child.java编译了child.class javac -d . child.java javac -d . child.java ,它创建一个新的mypackage目录。 我尝试在main中导入子类,如下所示: import subdirectory.mypackage.* (注意-d选项将child.class放在mypackage文件夹中) 我用“javac main.java”编译了main.java文件 我收到以下错误: mainAESE.java:9: cannot access subdirectory.child bad class file: RegularFileObject[./subdirectory/child class file contains wrong class: mypackage.child Please remove or make sure it appears in the correct subdirectory of the class child childInstance= […]

是否有Java库从AST生成类文件?

这个页面描述了我如何使用javac中的代码生成器来生成代码,因为我可以构建一个AST(使用我编写的单独的解析器)。 该技术涉及编辑javac的源代码以基本绕过Java解析器,以便可以将他/她自己的AST提供给代码生成器。 这可能有用,但我希望以稍微清洁的方式做到这一点。 我想在我的项目中包含生成javac的代码作为库的代码,这样我就可以用它来生成代码,而不会带来javac源代码的其余部分。 有没有办法用javac做到这一点,或者是否有更好的库? 此外,随时更改问题的标题。 我想不出更好的一个,但它有点含糊不清。 如果你建议编辑一个更好的标题,我会接受它。

Javac vs Java in -classpath选项

从javac和java调用-classpath选项有什么区别 例如: javac -classpath MyJar.jar GetJar.java java -classpath MyJar.jar:. GetJar 它的工作原理如下: javac -classpath MyJar.jar GetJar.java java GetJar 所以基本上在与javac相关的第一个类路径需要在那里,另一方面在java命令行中它可能是可选的。 为什么? 你知道在什么情况下它是强制性的。 更一般地说, javac调用的-classpath的效果是什么, java调用的-classpath的效果是什么。 提前致谢。

在命令行中使用javac进行编译时出现“package javax.inject不存在”错误

我正在迈出学习JSF的第一步。 我发现这本有趣的书名为“Core JavaServer Faces Third Edition”。 尝试编译第一个示例,您可以从http://horstmann.com/corejsf/下载源代码。 当我在命令行上键入以下内容时 javac UserBean.java 我收到错误: package javax.inject does not exist package javax.enterprise.context doe not exist 我已经下载了Java EE,Ant和GlassFish。 以下是我的命令行: C:\JSF-Tutorial\corejsf3-examples\javaee\ch01\login\src\java\com\corejsf>javac UserBean.java UserBean.java:4: error: package javax.inject does not exist import javax.inject.Named; ^ UserBean.java:6: error: package javax.enterprise.context does not exist import javax.enterprise.context.SessionScoped; ^ UserBean.java:9: error: cannot find symbol @Named(“user”) // or @ManagedBean(name=”user”) […]

java编译器的目标版本“jsr14”与JDK7 / 8

任何人jsr14告诉我javac的jsr14目标选项仍然可用于JDK7 / 8吗? 说, $ javac -source 1.5 -target jsr14 Hello.java

如何为以前的Java版本构建jar?

我正在尝试编译我的代码并在不同的服务器上运行它。 问题是我的JRE版本是Java版本“1.6.0_13”,服务器上的版本是Java版本“1.4.2”。 当我尝试在服务器上运行jar时,这给了我“无法识别的类文件版本”exception。 我无法在服务器上编译我的代码,因为我将不得不设置各种依赖项。 所以我需要知道是否有办法“使用Eclipse”[这比命令行更容易,因为它负责依赖]并使用1.4.2而不是1.6.0_13编译我的东西。 我是否必须从我的机器上卸载我的JRE,然后重新安装以前的版本然后编译或者是否有一种优雅和清洁的方式?

构建Java包(javac到所有文件)

如何将目录中的所有文件编译为* .class文件?

在Java 6中编译,在7中运行 – 如何指定useLegacyMergeSort?

我想知道我是否在Java 6中编译,但有人在Java 7上运行程序,是否会使用Java 6或7版本的Arrays.sort? 这很重要,因为新的mergesort会抛出IllegalArgumentException,旧的则不会抛出(请参阅Comparison方法违反了它的一般合约!仅限Java 7 ) 现在,可以使用Arrays.useLegacyMergeSort在Java 7中进行编译,但很明显,该标志不适用于Java 6 – 我们希望在Mac OS Snow Leopard(使用6)上兼容。 出于某种原因(参见http://madbean.com/2006/target14/),-target编译器标志似乎不会产生兼容的代码,所以我们宁愿在Java 6中编译。 有什么建议么?

从_within_ build.xml完全指定Eclipse编译器

作为一个实验,我们想在Java 6的运行时版本而不是JDK上使用Eclipse java编译器(从eclipse.org下载的ecj-3.5.jar)构建我们的产品,据我所知,这是一个添加的问题。这个jar到ant类路径,并将build.compiler属性设置为指向适配器。 通过包括 在我的build.xml中并使用JRE调用ant,我得到了无法找到适配器的预期错误,并且通过在Eclipse面板中的类路径中添加ecj-3.5.jar,我可以按预期编译我的代码。 我相信与现代ant在命令行中使用“-lib foo.jar”可以使用相同的function。 现在,我想在 build.xml中指定我希望我的类路径上的ecj-3.5.jar满足上述要求。 我们已经可以使用ant任务执行此操作,因此我认为这是可能的。 所以问题是:如何添加到javac使用的类路径, 只能从build.xml中找到编译器? 看来即将推出的ant4eclipse 1.0包含了Eclipse编译器(我想用它来实现),所以通过升级到它(从0.5开始)应该可以解决我们遇到的问题。 2010-09-24:Ant4Eclipse仍处于M4状态,但没有说明发布的时间。 2011-12-01:我们现在已经从ant迁移到了maven。 build.xml脚本遇到了复杂问题,需要采用新方法。 任何人都需要选择做什么 – 除了琐碎的项目之外,不要去ant4eclipse路径。 2012-11-30:一年后,maven的经历仍然很好。 思维方式有很多怪癖和变化,但大多数情况在上下文中都有意义。 Maven可以轻松地在各个项​​目上指定编译器级别。 我们正在考虑使用ecj而不是javac(出于几个原因)但是对于大多数用途来说,javac工作得很好。

Java编译错误限制为100

我有一个Java文件,当我编译时,在java编译器(javac)退出之后,我将只能在控制台上看到前100个错误。 我怎样才能在控制台上看到所有编译错误? 在此先感谢 – opensid