2013-09-22 43 views
0

我决定发布这个问题后,试图找到它的答案,并找不到一个。 我正在为OCJP学习,并尝试了几个简单的代码。这是我所做的和需要做的。基本Java - 包装

  1. 创建了两个的.java源,说TestOne.javaTestTwo.java [使用 记事本++]
  2. 创建的目录名为 “包1”,并置于两个源中 它们。
  3. 这两个源文件都有“package package1”;作为他们的第一个声明
  4. TestOne.java有一个公共类和一个具有默认访问权限的类。
  5. TestTwo.java具有在TestOne.java默认 类的一个对象的一个​​默认类。
  6. 主要方法是在TestTwo.java这个默认类。它尝试调用 中创建的引用对象的方法,使用TestOne.java默认类。

所以毕竟这是由javac的[javac的-classpath]设置标志 “类路径” 设置编译TestOne.java然后TestTwo.java。遵守。但是当我试图运行它给了我一个例外“线程中的异常”主“java.lang.NoClassDefFoundError”。有谁知道什么是错的?

+0

如何这个问题涉及到Android?编辑标签 – Varun

+0

首先告诉我你有没有使用过android?那么你应该知道你需要java来正确工作?希望答案能让你满意。 –

回答

0

试试这个

javac -d path cname.java 

所以写了这样

代码后
javac -d c:\main testone.java javac -d c:\main testtwo.java 

c:\main应该在你的电脑

存在,那么在执行

java -cp path pn.classname 

故取其类包含主(比如测试2)

java -cp c:\main package1.testtwo 
+0

感谢“一个dawg”。有效。 使用javac编译时需要添加-classpath,因为我们在我们定义的包中使用了一个类。这是一般java包以外的东西。 javac -classpath“path”[-d“path-of-generated-classfiles] sourcename.java 编译完成后,当我们尝试执行JVM时,找不到类文件,这就是为什么您设置了路径使用java命令“-cp”标志 我没有运行它作为“packagename.classfilename”只是设置“-cp”,然后类名称,这就是我做错了什么, 再次感谢@a dawg @Nambi –

+0

很高兴以帮助..当我正在处理它时,它很挑剔..但最终解决了它.. –

+0

现在选择这个作为正确的答案:P:D –

1

运行的代码编译后

编译javac TestTwo.java

运行编译java TestTwo

+0

感谢您的答案Nambi ...但Java说默认访问的类可以访问同一个包中的其他类。如果班级在另一个包中,则需要导入。我对吗 ? –

+0

是的,你是对的..但你有两个不同的包,右边 – Nambi

+0

两个班。java文件有“package package1”;在开始时声明。这意味着两个类都在同一个包中。多数民众赞成我的想法,这是错的? –