Tag:

如何从cmd运行作为包的一部分的.class文件?

当我将我的类作为包的一部分并尝试从cmd运行它时,我不断收到错误。 这是使用javac然后使用java后的代码: class HelloWorld { public static void main(String[] args) { System.out.println(“Hello World!”); } } 然后代码不起作用: package com; class HelloWorld { public static void main(String[] args) { System.out.println(“Hello World!”); } } 尝试运行“java HelloWorld”后给我这个错误: Exception in thread “main” java.lang.NoClassDefFoundError: HelloWorld (wrong nam e: com/HelloWorld) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) […]

在Java中,原始类型和数组是否包含包含?

在Java中,原始类型和数组是否包含包含? 可能不是,但只是想确定。

包装和知名度

我正在制作SDK,我正在尝试将类分离到不同的包,这些类使用其他一些共享类。 问题是如果我公开共享类,每个人都能看到它们,而不仅仅是我的类。 什么是使它们只能由我的应用程序访问的正确方法? 示例: 打包MyClass1 包装b MyClass2 包c公共MySharedClass 因为c是公共的MySharedClass将能够访问它,但问题是它也将对世界可见,我怎么能阻止它呢?

如何使用javac编译java包结构

目标 我正在尝试编译(从命令行)一个java包导入我自己的另一个包。 之前的工作 我正在关注位于以下url的教程: http : //www.roseindia.net/java/master-java/createsubpackage.shtml 但是当我尝试编译最终的java文件(CallPackage.java)时,我似乎遇到了错误。 示例的文件结构 这是文件结构: +test_directory (contains CallPackage.java) -> importpackage -> subpackage (contains HelloWorld.java) 码 这是CallPackage.java /// CallPackage.java import importpackage.subpackage.*; class CallPackage{ public static void main(String[] args){ HelloWorld h2=new HelloWorld(); h2.show(); } } 这是HelloWorld.java ///HelloWorld.java package importpackage.subpackage; public class HelloWorld { public void show(){ System.out.println(“This is the function of the […]

控制对“.internal”包的访问的最佳实践

我编写Eclipse插件并将一些类导出为API,同时希望限制对其他类的访问。 我按照常见的Eclipse实践将这些类分成“.internal”子包。 但是,我不能在这些类上使用“包”或默认级别访问,因为它们中的许多都需要由我导出的类使用。 防止或阻止我的API用户出于自己的目的使用这些类的最佳做法是什么? 有自动检查器吗? 我承认,当我别无选择时,我已经涉足了使用Eclipse的一些内部类:) 澄清:我对非插件代码有类似的需求。

包名称与文件夹结构不同,但Java代码仍然编译

我正在使用Notepad ++编写我的Java代码和命令提示符来编译和运行它。 以下是我的示例Java代码, package abraKadabra; public class SuperClass{ protected int anInstance; public static void main(String [] abc){ System.out.println(“Hello”); } } 但是,此文件位于以下文件夹结构中: “usingprotected \ superPkg”(usingProtected是C中层次结构中的某个文件夹:) 所以,我的包名在这里应该像usingProtected.superPkg而不是我编写的abraKadabra。 但是,当我从命令提示符编译这个Java代码时,它编译得很好,没有错误或警告。 为什么会这样? 软件包名称是否应该遵循文件夹结构? 如果它应该,它会如何坚持? 例如,如果我的包名是usingProtected.superPkg,编译器将以相反的顺序检查。 目前的工作目录应该是superPkg,那么父目录应该是使用保护并完成它。 它是如何用包名检查文件夹结构的?

从包中获取所有类

假设我有一个java包commands ,其中包含所有inheritance自ICommand类,我能以某种方式获得所有这些类吗? 我正在锁定以下内容: Package p = Package.getPackage(“commands”); Class[] c = p.getAllPackagedClasses(); //not real 有可能吗?

ActionListener最佳实践

对不起标题,可能太通用了。 我已经阅读了Java 如何编写动作监听器教程,我已经阅读了这个问题 ,但我仍有一些疑问:当我不得不多次执行相同的动作时,我想知道哪种解决方案是最好的。 我想重用相同的ActionListener ,但我不确定如何以最好的方式实现这一点(在术语方面:代码可读性,代码可持续性,性能和代码风格)。 首先是“标准”代码(如果我不打算重用动作监听器,我将使用它): btnMenu.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { Navigator.showMenu(); } } ); 这样我就无法重用任何obv,因为它是一个匿名的内部类…… 现在,我可以想到以下解决方案: 在字段中存储匿名内部类的引用(很可能是static final ); 编写一个实现ActionListener接口的新类。 解决方案1的示例代码: public static final MENU_ACTION_LISTENER = new ActionListener() { public void actionPerformed(ActionEvent e) { Navigator.showMenu(); } }; btnMenu.addActionListener(MENU_ACTION_LISTENER); 解决方案2的示例代码: // package-private, only GUI-package classes should be able to use […]

读取jar包中的xml文件

这是我的结构: COM / myCompany中/ ValueReader.class COM / myCompany中/资源/ values.xml 我可以在Eclipse项目中读取该文件,但是当我将它导出到.jar时,它永远找不到values.xml。 我尝试使用ValueReader.class.getResource()和ValueReader.class.getResourceAsStream()但它不起作用。 这有什么问题? 如何获取我的values.xml文件对象? B.

如何用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 […]