Questions tagged «java»

Java是一种流行的高级编程语言。如果您在使用或理解语言本身时遇到问题,请使用此标签。这个标签很少单独使用,最常与[spring],[spring-boot],[jakarta-ee],[android],[javafx],[gradle]和[maven]结合使用。

3
正确使用Java -D命令行参数
在Java中传递-D参数时,编写命令行然后从代码访问它的正确方法是什么? 例如,我尝试编写类似这样的内容... if (System.getProperty("test").equalsIgnoreCase("true")) { //Do something } 然后这样称呼它... java -jar myApplication.jar -Dtest="true" 但是我收到一个NullPointerException。我究竟做错了什么?

8
是否可以从InputStream读取超时?
具体来说,问题是编写这样的方法: int maybeRead(InputStream in, long timeout) 如果数据在“超时”毫秒内可用,则返回值与in.read()相同,否则为-2。在方法返回之前,所有产生的线程必须退出。 为避免自变量,此处的主题为java.io.InputStream,由Sun(任何Java版本)记录。请注意,这并不像看起来那么简单。以下是Sun文档直接支持的一些事实。 in.read()方法可能是不可中断的。 将InputStream包装在Reader或InterruptibleChannel中没有帮助,因为所有这些类都可以做的是InputStream的调用方法。如果可以使用这些类,则可以编写一个直接在InputStream上执行相同逻辑的解决方案。 in.available()返回0始终是可接受的。 in.close()方法可能会阻止或不执行任何操作。 没有杀死另一线程的一般方法。


11
我的计算机中Java SDK文件夹在哪里?Ubuntu 12.04
我知道它已安装,因为当我键入时: $java -version 我得到: OpenJDK Runtime Environment (IcedTea6 1.12.5) (6b27-1.12.5-0ubuntu0.12.04.1) OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode) 当我键入: $locate jdk 我得到: /home/arturo/Documents/2012a/sys/java/jre/glnxa64/jre/lib/servicetag/jdk_header.png /usr/share/app-install/desktop/openjdk-6-jre:openjdk-6-java.desktop /usr/share/app-install/desktop/openjdk-7-jre:openjdk-7-java.desktop /usr/share/app-install/icons/openjdk-6.png /usr/share/app-install/icons/openjdk-7.png 我担心列表中的第一项是2012a文件夹是我的MATLAB文件夹,而不是标准的“ usr / lib”文件夹。我真的对JDK和JRE的安装位置感到困惑,因为我需要设置指向该文件夹的$ JAVA_HOME路径。我在哪里缺少什么?
147 java  java-home 

13
在运行时,找到扩展基类的Java应用程序中的所有类
我想做这样的事情: List<Animal> animals = new ArrayList<Animal>(); for( Class c: list_of_all_classes_available_to_my_app() ) if (c is Animal) animals.add( new c() ); 因此,我想查看应用程序Universe中的所有类,当我发现一个来自Animal的类时,我想创建一个该类型的新对象并将其添加到列表中。这使我可以添加功能,而不必更新事物列表。我可以避免以下情况: List<Animal> animals = new ArrayList<Animal>(); animals.add( new Dog() ); animals.add( new Cat() ); animals.add( new Donkey() ); ... 通过上述方法,我可以简单地创建一个扩展Animal的新类,它将自动被拾取。 更新:10/16/2008 9:00 AM太平洋标准时间: 这个问题引起了很多反响-谢谢。 从回答和研究中,我发现我真正想做的事在Java下是不可能的。有一些方法可以使用,例如ddimitrov的ServiceLoader机制,但是对于我想要的东西,它们非常繁琐,我相信我只是将问题从Java代码移到了外部配置文件中。 更新5/10/19(11年后!)根据@IvanNik的回答 ,现在有几个库可以帮助解决此问题。org.reflections看起来不错。此外ClassGraph从@Luke和记黄埔的答案看起来很有趣。答案中还有其他几种可能性。 声明我想要的另一种方式:Animal类中的静态函数查找并实例化了从Animal继承的所有类-无需任何进一步的配置/编码。如果必须进行配置,无论如何,我还是可以在Animal类中实例化它们。我了解这是因为Java程序只是.class文件的松散联合,而事实就是如此。 有趣的是,这似乎在C#中是微不足道的。


28
如何计算Java中某人的年龄?
我想以Java方法的整数形式返回年龄(以年为单位)。我现在所拥有的是getBirthDate()返回一个Date对象(带有出生日期;-)的以下内容: public int getAge() { long ageInMillis = new Date().getTime() - getBirthDate().getTime(); Date age = new Date(ageInMillis); return age.getYear(); } 但是由于不赞成使用getYear(),所以我想知道是否有更好的方法可以做到这一点?我什至不确定这是否能正常工作,因为我还没有进行单元测试。
147 java  date  calendar 

9
<和之间有什么区别?超级E>和<?扩展E>?
&lt;? super E&gt;和之间有什么区别&lt;? extends E&gt;? 例如,当您查看类时java.util.concurrent.LinkedBlockingQueue,构造函数具有以下签名: public LinkedBlockingQueue(Collection&lt;? extends E&gt; c) 对于方法之一: public int drainTo(Collection&lt;? super E&gt; c)
147 java  generics 

4
如何使用Spring RestTemplate发布表单数据?
我想将以下(工作)curl代码段转换为RestTemplate调用: curl -i -X POST -d "email=first.last@example.com" https://app.example.com/hr/email 如何正确传递email参数?以下代码导致404 Not Found响应: String url = "https://app.example.com/hr/email"; Map&lt;String, String&gt; params = new HashMap&lt;String, String&gt;(); params.put("email", "first.last@example.com"); RestTemplate restTemplate = new RestTemplate(); ResponseEntity&lt;String&gt; response = restTemplate.postForEntity( url, params, String.class ); 我试图在PostMan中制定正确的调用,并且可以通过在主体中将email参数指定为“ form-data”参数来使其正常工作。在RestTemplate中实现此功能的正确方法是什么?

8
使用Tomcat启动Spring Boot时的用户名和密码是什么?
当我通过Spring Boot和访问权限部署Spring应用程序时,localhost:8080我必须进行身份验证,但是用户名和密码是什么或如何设置呢?我试图将其添加到我的tomcat-users文件中,但是没有用: &lt;role rolename="manager-gui"/&gt; &lt;user username="admin" password="admin" roles="manager-gui"/&gt; 这是应用程序的起点: @SpringBootApplication public class Application extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(Application.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Application.class); } } 这是Tomcat依赖项: &lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-starter-tomcat&lt;/artifactId&gt; &lt;scope&gt;provided&lt;/scope&gt; &lt;/dependency&gt; 我如何认证localhost:8080?


10
使用java.util.logging.Logger时如何在文本文件中写入日志
我遇到一种情况,我想将我创建的所有日志写入一个文本文件。 我们正在使用java.util.logging.Logger API生成日志。 我试过了: private static Logger logger = Logger.getLogger(className.class.getName()); FileHandler fh; fh = new FileHandler("C:/className.log"); logger.addHandler(fh); 但是仍然只能在控制台上获取我的日志。
147 java  logging 


12
杰克逊-使用泛型类反序列化
我有一个json字符串,应该将其反序列化为以下类 class Data &lt;T&gt; { int found; Class&lt;T&gt; hits } 我该怎么做?这是通常的方式 mapper.readValue(jsonString, Data.class); 但是我怎么提到T代表什么呢?
147 java  json  generics  jackson 

20
持续的Android会议室:AppDatabase_Impl不存在
我的应用程式资料库类别 @Database(entities = {Detail.class}, version = Constant.DATABASE_VERSION) public abstract class AppDatabase extends RoomDatabase { private static AppDatabase INSTANCE; public abstract FavoritesDao favoritesDao(); public static AppDatabase getAppDatabase(Context context) { if (INSTANCE == null) { INSTANCE = Room.databaseBuilder(context.getApplicationContext(), AppDatabase.class, Constant.DATABASE).allowMainThreadQueries().build(); //Room.inMemoryDatabaseBuilder(context.getApplicationContext(),AppDatabase.class).allowMainThreadQueries().build(); } return INSTANCE; } public static void destroyInstance() { INSTANCE = …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.