Tag: 编译

当其他包中有java文件时,如何编译多个java文件

我正在编译目录中的多个文件(javac * .java)但是当我尝试这样做时遇到问题: 我得到编译错误,说javac无法找到对象的符号。 我有多个包,包含运行主程序所需的java文件。 但似乎尝试逐个编译这些将无法正常工作。 它在我的IDE中运行正常,但我有兴趣通过命令提示符了解它是如何完成的。 主程序位于drivers文件夹中。 我已经尝试按依赖顺序编译文件但是没有用。

如何用Java编译.java文件?

我有Eclipse生成的以下代码(.java文件)。 import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Display; public class HelloWorldSWT { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Display display = new Display(); Shell shell = new Shell(display); shell.setText(“Hello world!”); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); } } 现在我想从命令行编译上面的文件。 我去了源代码所在的目录,我尝试了两个命令: 1. javac HelloWorldSWT.java 2. javac […]

在Windows命令行中将Jar文件添加到Buildpath

我很不高兴不得不问这个,但我不能让它工作。 目前我有一个项目: 5个src /文件夹中的类 2 JARS在根文件夹中命名为profiles.jar和classifier.jar 我想创建一个“makefile?” 还是“批处理文件?” 从WINDOWS命令行编译和运行这些类,但首先将jar添加到buildpath? 我不知道我怎么回事 当我尝试这样做时,它表示找不到类,很可能是因为我没有正确地将jar添加到构建路径中。 在命令提示符下运行此命令需要使用哪些命令? 谢谢Philip 编辑 感谢您的帮助,我有很多麻烦让它工作当前我有一个项目在src文件夹中有5个类,在jar文件夹中有2个jar 以下是我正在运行的命令: 设置CLASSPATH = C:\ wamp \ www \ news \ UserProfiling \ jars \ classifier.jar; C:\ wamp \ www \ news \ UserProfiling \ jars \ profiles.jar 然后从根文件夹,我运行: javac src / * .java 然后: java -cp ./src:./jars/* src / Interaction […]

Javac“找不到符号”

我有这样的根目录: ├── classes └── src └── vehicles ├── Bicycle.java └── BicycleMain.java Bicycle.java package vehicles; public class Bicycle { public int cadence; public int gear; public int speed; public Bicycle(int startCadence, int startSpeed, int startGear) { gear = startGear; cadence = startCadence; speed = startSpeed; } public void setCadence(int newValue) { cadence = newValue; } public […]

在运行时生成,编译和使用Java代码?

我有一个场景,我必须在我的应用程序运行时生成Java代码。 可以编译和运行来自我的应用程序的代码(作为单独的应用程序)。 是否可以编译然后从同一个应用程序中使用它。 不能想到任何可能性

编译器的行为方式与generics方法的null参数不同

以下代码与Eclipse完美编译,但无法使用javac进行编译: public class HowBizarre { public static void doIt(P value) { } public static void main(String[] args) { doIt(null); } } 我简化了代码,所以现在根本不使用T. 不过,我没有看到错误的原因。 出于某种原因,javac决定T代表Object,然后抱怨Object不符合T的界限(这是真的): HowBizarre.java:6:不兼容的类型; 推断类型参数java.lang.Number,java.lang.Object不符合类型变量的范围P(T) 发现: 无效 要求:无效 doIt(null); ^ 请注意,如果我将null参数替换为非null值,则编译正常。 哪个编译器行为正确,为什么? 这是其中之一的错误吗?

为什么java源文件需要包声明?

我想我无法理解java包结构,对我来说,java文件中有一个包声明似乎是多余的,然后还需要出现在与包名匹配的目录中。 例如,如果我有一个MyClass.java文件: package com.example; public class MyClass { public static void main(String[] args) { System.out.println(“Hello, World”); } } 然后我将需要将此文件放在com/example ,相对于基本目录,我将从基本目录执行java com.example.MyClass来运行它。 为什么编译器不能通过查看目录结构来推断包名? 例如,如果我从基本目录javac com\example\MyClass.java编译文件,我不明白为什么MyClass.java不会隐含属于com.example包。 我知道有一个默认包,但似乎源文件中的包声明仍然是冗余信息?

如何在命令提示符下运行Java程序

我创建了一个Java项目来调用Web服务。 它有一个Main java文件和另一个类文件。 我已经为HTTP客户端使用了一些jar文件。 在Eclipse中运行良好。 我需要通过传递一些参数在命令提示符下运行Java程序。 在命令提示符下,我转到包含主java和子类java文件的src文件夹,并给出了以下命令 javac mainjava.java 我收到了以下错误 mainjava.java:14:找不到符号 symbol:class SubClass 这里SubClass是我用来调用Web服务的另一个java类文件。 如何通过传递参数来运行程序?

创建非反向工程的Java程序

有没有办法以不可反向工作的格式部署Java程序? 我知道如何将我的应用程序转换为可执行的JAR文件,但我想确保代码不能进行逆向工程,或者至少不容易。 源代码的混淆不计算……它使得理解代码变得更加困难,但不会隐藏它。 一个相关的问题是如何锁定已编译的Java类以防止反编译? 一旦我完成了程序,我仍然可以访问原始源代码,因此维护应用程序不会成为问题。 如果应用程序是分发的,我不希望任何用户能够反编译它。 混淆不能实现这一点,因为用户仍然可以对其进行反编译,虽然他们很难跟踪操作流程,但他们能够看到代码,并可能从中获取信息。 我关心的是代码中是否有与远程访问相关的信息。 应用程序使用用户提供的用户标识和密码连接主机。 有没有办法从用户隐藏主机的地址,如果该地址位于源代码内?

编译时代码中是否替换了Java静态最终值?

在java中,说我有以下内容 ==fileA.java== class A { public static final int SIZE = 100; } 然后在另一个文件中我使用此值 ==fileB.java== import A; class b { Object[] temp = new Object[A.SIZE]; } 当这个被编译时, SIZE被替换为值100,所以如果我要在路上替换FileA.jar而不是FileB.jar,对象数组会获得新值,还是硬编码为100,因为那样它最初建造时的价值? 谢谢, 斯蒂芬妮