最后的代码产生编译错误:
NotApplicable.java:7: run() in cannot be applied to (int)
run(42);
^
1 error
Run Code Online (Sandbox Code Playgroud)
问题是为什么?为什么javac认为我调用run(),并且找不到run(int bar)?它正确地称为foo(int bar).为什么我必须使用NotApplicable.this.run(42);?这是一个错误吗?
public class NotApplicable {
public NotApplicable() {
new Runnable() {
public void run() {
foo(42);
run(42);
// uncomment below to fix
//NotApplicable.this.run(42);
}
};
}
private void run(int bar) {
}
public void foo(int bar) {
}
}
Run Code Online (Sandbox Code Playgroud) 我之前曾问过一个关于使用Vim来开发Java的问题,但我最终意识到JDK非常有效,而且对于像我这样的初学者而言,Ant太复杂了.事情变得更清楚了,现在我又有了一个问题.
当我使用'filename.java'这样的文件时,我需要能够在'filename.java'上使用'javac.exe',它位于Java Development Kit(JDK)中(我可以使用的典型项目)正在努力).通常,要在Vim外面这样做,我能做到
:Vim中的shell访问Vim外部的shell
C:\ Program Files ...\javac C:\ home-directory-of-filename.java\filename.java
这很长,因为我必须访问javac目录,然后编写整个'filename.java'目录.
无论如何要求Vim调用javac并直接在我正在处理的文件上使用它?如果有人能提供帮助,我会很高兴.我试图在我的_vimrc文件中写几个东西,但没有成功.顺便说一句,我是一个Windows Vista用户.
我知道如何在运行时使用-Xmx -Xms,有没有办法让编译器分配更多的ram.我的电脑上有2场演出.我不使用IDE只是textpad.我正在尝试创建一个10,000,000位的BigInteger并对其进行操作.我尝试创建一个StringBuffer和ensureCapacity(10000000),它不会编译.是否有一个类可以用来告诉编译器我需要更多ram才能编译,或者编译时?我确实读过有关RunTime方法的内容,并且我将继续乘以BigInteger并观察堆.我尝试将字符串嵌入代码"1000000"+等10,000,000个数字,它也不会编译.
我知道这是一个常见的错误,但请耐心等待.我一直在追求CLASSPATH问题,我认为这不是问题所在.我收到这样的错误.
./src/process.java:2: package javax.servlet does not exist
import javax.servlet.*;
Run Code Online (Sandbox Code Playgroud)
我安装了Tomcat和Java SDK,我知道Tomcat应该提供servlet API.但它究竟在寻找什么文件?
我有以下设置:JAVA_HOME =/usr/java/jdk1.6.0_16 CLASSPATH =/usr/share/java;/usr/share/java/tomcat6
tomcat的基本目录:/ usr/share/tomcat6在这个目录中,/ usr/share/tomcat6/lib只是/ usr/share/java/tomcat6的符号链接
tomcat6-servlet-2.5-api-6.0.18.jar在/ usr/share/java/tomcat6中,还有什么我需要告诉javac所以它会使用这个库吗?我需要另一个图书馆吗?
作为背景,我正在尝试运行一个hello world servlet.代码如下:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class process extends HttpServlet {
public void doGet( HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println("Hello World");
}
}
Run Code Online (Sandbox Code Playgroud)
当我使用javac编译它时,我得到以下错误(其中包括这是根本原因):
./src/process.java:2: package javax.servlet does not exist
import javax.servlet.*;
^
./src/process.java:3: package javax.servlet.http does not exist
import javax.servlet.http.*;
^
Run Code Online (Sandbox Code Playgroud)
我尝试使用-cp选项在命令行上指定类路径,但我最终得到了相同的结果.
我正在编译一个包含语句的程序.例如
package APPC_LU62.Runtime ;
Run Code Online (Sandbox Code Playgroud)
我还有一个与package语句匹配的预先存在的目录结构.
C:\APPC_LU62\Runtime
Run Code Online (Sandbox Code Playgroud)
如何让javac编译器在预先存在的内容中创建相同的目录结构?即
C:\APPC_LU62\Runtime\APPC_LU62\Runtime
Run Code Online (Sandbox Code Playgroud)
在我看来,编译器应该足够"智能",以便在创建现有目录结构之前首先检查它.
谢谢
在CentOS 5 linux上使用一些基本的java应用程序,我的classpath设置指向home/pathToJava/bin包含javac和java
我有.java文件home/pathToFolderA/src
和 home/pathToFolderB/gen-java
当我运行javac,并java在home/pathToFolderA/src一切完美
但是,当我javac从内部运行时home/pathToFolderB/gen-java,fileName.java我得到一个文件未找到错误,具体而言
javac: file Not found: fileName.java
Usage: javac <options> <source files>
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种情况?
谢谢你的帮助
我是java的新手.我写了一个这样的简单代码:
import java.io.*;
public class a
{
public static void main(String []argc)
{
System.out.println("S");
}
}
Run Code Online (Sandbox Code Playgroud)
我使用下面的bash命令编译它:
javac a.java
Run Code Online (Sandbox Code Playgroud)
这个:
java a
Run Code Online (Sandbox Code Playgroud)
但它说:
无法找到或加载主类a
我的java版本是1.6.0.我该怎么办?
好的,所以我买了一台新电脑
Windows 7 Pro 64位Service Pack 1
我安装了jdk-7u25-windows-x64(jdk 1.7.0_25)
它安装在默认位置C:\ Program Files\Java\jdk1.7.0_25中
我将JAVA_HOME环境变量设置为C:\ Program Files\Java\jdk1.7.0_25
我将%JAVA_HOME%\ bin添加到Path环境变量中(是的,我使用了a;在添加之前)
点击确定
关闭所有CMD窗口打开它们
现在,如果我运行命令java,我得到预期的输出
但如果我运行javac命令,我会得到这个
C:\Users\AJ>javac
'javac' is not recognized as an internal or external command,
operable program or batch file.
Run Code Online (Sandbox Code Playgroud)
我试过摆弄路径,但没有运气,并重新启动我的电脑等没有运气
如果我在jdk\bin目录中似乎也可以工作
C:\>cd C:\Program Files\Java\jdk1.7.0_25\bin
C:\Program Files\Java\jdk1.7.0_25\bin>javac -version
javac 1.7.0_25
C:\Program Files\Java\jdk1.7.0_25\bin>
Run Code Online (Sandbox Code Playgroud)
如何让javac命令像java一样正确运行
Java代码:
public class SimpleRecursion {
public int factorial(int n) {
if (n == 0) {
return 1;
}
return n*factorial(n - 1);
}
}
Run Code Online (Sandbox Code Playgroud)
为factorial方法提供以下字节码(我执行javap来生成它):
Run Code Online (Sandbox Code Playgroud)public int factorial(int); descriptor: (I)I flags: ACC_PUBLIC Code: stack=4, locals=2, args_size=2 0: iload_1 1: ifne 6 4: iconst_1 5: ireturn 6: iload_1 7: aload_0 8: iload_1 9: iconst_1 10: isub 11: invokevirtual #2 // Method factorial:(I)I 14: imul 15: ireturn LineNumberTable: line 4: 0 line 5: 4 line 7: 6 StackMapTable: number_of_entries = 1 frame_type …
我正在尝试使用asdf安装Erlang(及更高版本的Elixir),但是jinterface由于安装过程似乎冻结而出现错误:
? ~ asdf install erlang 22.1.1
Downloading OTP-22.1.1.tar.gz to /Users/me/.asdf/plugins/erlang/kerl-home/archives
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 122 0 122 0 0 320 0 --:--:-- --:--:-- --:--:-- 321
100 52.4M 0 52.4M 0 0 7604k 0 --:--:-- 0:00:07 --:--:-- 9203k
Extracting source code
Building Erlang/OTP 22.1.1 (asdf_22.1.1), please wait...
APPLICATIONS DISABLED (See: /Users/me/.asdf/plugins/erlang/kerl-home/builds/asdf_22.1.1/otp_build_22.1.1.log)
* jinterface : Java compiler disabled by user
DOCUMENTATION INFORMATION (See: /Users/me/.asdf/plugins/erlang/kerl-home/builds/asdf_22.1.1/otp_build_22.1.1.log) …Run Code Online (Sandbox Code Playgroud)