在获得第二个类文件之前,我使用命令“javac-cp”./lib/*:lib/*“src/aaa.java”
编译,并使用命令“java-classpath”lib/*:lib/*“src/aaa.java data/*”
运行程序。我在这里已经很困惑了。如果我没有将“.java”
放入run命令中,则消息为:
"Error: Could not find or load main class src.AAA
Caused by: java.lang.ClassNotFoundException: src.AAA"
会出现。为什么会这样?
在添加第二个类文件之后。我使用命令“javac-cp”./lib/*:lib/*“src/aaa.java src/mergerhtml.java”
编译程序,没有发现错误。但是,当我使用命令“java-classpath”lib/*:lib/*“src/aaa.java data/*”
时,产生的错误如下:
src/AAA.java:441: error: cannot find symbol
MergerHTML mHTML = new MergerHTML();
^
symbol: class MergerHTML
location: class AAA
public class AAA {
....
public static void main(final String[] args) throws Exception {
MergerHTML mHTML = new MergerHTML();
mHTML.print();
}
}
public class MergerHTML{
public void print(){
System.out.println("hiiiiii");
}
}
而不是
java -classpath "lib/*:lib/*" src/AAA.java data/*
您需要指定要执行的编译类(而不是它来自的源代码),在类路径中不需要lib/*
两次,但需要当前文件夹(实际上是包含编译类的文件夹,在本例中是当前文件夹)。例如(在Windows上将:
更改为;
),
java -classpath "lib/*:." AAA data/*
注意:更传统的放置类的地方是bin
文件夹(您可以随意命名它,但是当类都收集在一个“干净”的树中时,打包会更方便)。所以,就像
mkdir bin
javac -cp "lib/*" -d bin src/AAA.java src/MergerHTML.java
java -classpath "lib/*:bin" AAA data/*
java -classpath "lib/*;bin" AAA data/*
我想参加一场比赛。Java一直是我编写游戏的工具,所以很自然我会想在这个游戏中使用它。问题是,它不能需要其他软件。我相信这包括Java。那么,有没有办法在某种exe文件中包含java?或者以其他方式包括它?资产不必包含在内,但总体大小必须小于1GB,因此我需要足够的空间来存放实际的游戏和资产。
问题内容: 我想在Eclipse中编译我的Java程序,但不想运行它。我不知道该怎么做。 如何在不运行Eclipse的情况下将Java程序编译为文件? 问题答案: 您可以在项目菜单中自动取消选中构建,然后通过按Ctrl + B或单击打印机图标右侧出现的图标手动构建。
问题内容: 有人建议可以怎一个JAVA程序运行不写一个主要方法.. 例如: 不使用类中的公共静态void main(String arg []),如何在控制台上打印以上行。 问题答案: 直到JDK6,您都可以使用静态初始化程序块来打印消息。这样,一旦您的班级被加载,消息就会被打印出来。然后,技巧就变成了使用另一个程序来加载您的类。 当然,您可以按如下方式运行程序,您将看到消息;但是,该命令也会失败
我需要为我的项目生成序列图。 我已经创建了类、具有适当签名的方法、从一个类到另一个类的方法调用等,但是,由于逻辑还没有实现,我无法真正运行web应用程序来通过跟踪获得序列图。 语言:Java IDE:Eclipse
问题内容: 是否可以在不使用序列化的情况下对Java对象进行深层复制/克隆?如果是这样,那又如何? 问题答案: 您可以使用制作对象的深层副本。当您无法(或不想)使您的类可序列化时,这真的很有用。用法很简单:
有时运行docker映像会失败,因此ssh’ing到容器中不是一个选项。在这种情况下,我们如何查看容器中的内容? 有一个存在的问题,但错误地标记为重复。如何浏览docker图像而不运行它?