use*_*339 29 java command-line javac classpath package
我已阅读以前发布的问题.有些是模糊的,没有一个解决我的问题,所以我不得不再问.
我有两个简单的课程,
package One;
import One.Inner.MyFrame;
public class test
{
public static void main(String args[])
{
MyFrame f= new MyFrame();
}
}
Run Code Online (Sandbox Code Playgroud)
而另一类是,
package One.Inner;
import java.awt.*;
import javax.swing.*;
public class MyFrame extends JFrame
{
public MyFrame()
{
setPreferredSize(new Dimension(400,560));
setVisible(true);
}
}
Run Code Online (Sandbox Code Playgroud)
我在Windows cmd中的基本文件夹"基本".我编译使用
basic> javac *.java -d .
Run Code Online (Sandbox Code Playgroud)
创建文件夹和子文件夹.
cd One
basic\One> java test
Run Code Online (Sandbox Code Playgroud)
这会产生一大堆错误.许多答案旨在指定不起作用的完整路径.我的类在One中,因此指定一个使用-cp也不起作用.
Jon*_*eet 44
你将它运行为:
java One.Test
Run Code Online (Sandbox Code Playgroud)
...但是从根目录(basic),而不是从One目录.您始终指定完全限定的类名.
在Java中哦,包名应该是小写,所以它应该是one和one.inner,不One和One.Inner.只是一个惯例,但几乎每个人都遵循一个惯例.
Mat*_*ttC 14
如果目录是:
basic\One
Run Code Online (Sandbox Code Playgroud)
从包的基目录运行java:
basic>java One.test or basic>One.test <optional arguments>
Run Code Online (Sandbox Code Playgroud)
(理想情况下,包将为小写,类为大写):
basic>java one.Test
Run Code Online (Sandbox Code Playgroud)
如果您收到"不存在"消息,则java命令无法找到您在类中引用的类.您可以使用-cp选项指向它们('.'表示'此处',您可以添加任意数量的地方除以';'在Windows上和':'在Linux上).
basic>java -cp . one.Test
or
basic>java -cp .;..\..\someJar.jar;c:\someDirectory\classesDirectory one.Test
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
80976 次 |
| 最近记录: |