我的两门课是这样的:
package p;
class A{
public static void main(String[] args){
B b = new B("haha");
b.run();
//System.out.println("he");
}
}
和
package b;
class B{
String s;
public B(String s){
this.s = s;
}
public void run(){
System.out.println(s);
}
}
我无法使用javac a.java b.java
编译这两个文件,错误是:
a、 java:4:找不到symbol
symbol:B类位置:p.a类
B类B=新B(“哈哈”)
^
a.java:4:找不到符号
符号:B类
位置:p.a类
B类=新B(“哈哈”)
^
2个错误
移除包装p后
,
javac a.java b.java
运行良好。
那么,我如何用
包p编译和运行类A
?
======编辑=======
谢谢你的回复,最后我通过这样改变我的文件来运行我的类:
.
├── b
│
a.java:
package p;
import b.B;
class A{
public static void main(String[] args){
B b = new B("haha");
b.run();
//System.out.println("he");
}
}
B.java:
package b;
public class B{
String s;
public B(String s){
this.s = s;
}
public void run(){
System.out.println(s);
}
}
事情需要注意:
B类必须是公开的
- 当尝试在类A中使用时应该导入B
下面的代码将工作。
//B.java
package b;
public class B{
String s;
public B(String s){
this.s = s;
}
public void run(){
System.out.println(s);
}
}
//A.java
package p;
import b.B;
class A{
public static void main(String[] args){
B b = new B("haha");
b.run();
}
}
运行“java p.A”
将这一行添加到A类代码中:
import b.B;
它应该是包声明之后的下一行代码。
我有一个多线程程序,可以导入JSON,我想通过CMD运行它,但现在我不能,因为它说它没有导入。 如何解决这个问题,以便我可以始终在CMD上运行程序,而无需在运行时进行额外的键入;即,只是javacprogram.java和javaprogram.java
(我是java BTW的新手!)
问题内容: 我有两个如下的Java类 没有包装: 在包装中: 我可以同时编译它们: 但是,我只能运行第一个: 我该如何跑步? 问题答案: 如果将 源 放在与包名称()相匹配的适当目录层次结构中,并从层次结构的根目录()进行编译/运行,则不会出现此问题: 您还可以使用选项进行编译,以便将类移动到这样的目录层次结构中: 请注意,您不应使用以开头的程序包名称,JDK的更高版本将引发SecurityExc
问题内容: 当我将其作为a的一部分并尝试从cmd运行它时,我不断收到错误消息。 这是先使用后再使用java 的代码: 然后无效的代码: 在尝试通过命令运行程序后给了我这个错误: 到目前为止,这是我尝试过的操作: 请记住,返回没有错误,只需删除即可解决问题。有时在其他情况下,我会收到一条错误消息,提示找不到主类文件或类似的内容。 我究竟做错了什么? 问题答案: 假设您在中,并且在中,然后键入:
所以我在eclipse中设置了一个基本的你好世界,我可以很容易地使用cmd编译它(我已经设置了所有必要的路径),但是当我尝试使用java命令来执行你好世界时,它总是返回相同的错误:错误:无法找到或加载主类helloWorld引起的:java.lang.NoClassDefFoundError: net/codejava/helloWorld(错误的名称:helloWorld) 以下是使用的代码:
我有一个从Eclipse导出的jar文件(Runnable JAR 在java中,如果在清单中设置主类。可以运行的xml: 如果您想在jar文件中运行另一个主类,或者如果您没有在清单中设置主类。可以运行的xml: 在Hadoop中,如果在清单中设置了main类。可以运行的xml: 如果您键入: 它将MyOtherMainClass视为jar原始主类的“args”数组中的参数(而不是要运行的类)。