小编tgo*_*ens的帖子

使用python编辑jar文件

你知道一个python模块,我可以用它将文件添加到JAR存档吗?

(我不想做的是将.class文件添加到jar存档中)

必须用python编写必须编写的程序

谢谢!

python java jar

6
推荐指数
1
解决办法
1882
查看次数

使用javassist用字节码中的方法替换java运算符

我的目标

为了能够在运行时检测何时进行比较(或任何其他操作,如*, - ,/,>,<,......

应该使用Javassist或ow2 ASM来编辑类的字节码

必须实现的目标

这段代码

public class Test{

    public void m(){

        if(a>2){
        //blablabla         
        }

    }  

}
Run Code Online (Sandbox Code Playgroud)

必须成为

public class Test{

    public void m(){

        if(someExternalClass.greaterThan(a,2)){
            //blalbla           
    }

    }

}
Run Code Online (Sandbox Code Playgroud)

greaterThan将返回与'>'完全相同的结果,但也将用于保存比较量每次进行比较时都会通知外部类

额外的说明

必须在有操作的任何地方进行.所以不仅在if语句中.

这意味着

int a = c+d;
Run Code Online (Sandbox Code Playgroud)

也必须成为

int a = someExternalClass.add(c,d);
Run Code Online (Sandbox Code Playgroud)

您对如何使用Javassist或其他库实现此目的有任何建议吗?

我想它与像IFLT,IFGT这样的OpCodes有关

java bytecode bytecode-manipulation javassist java-bytecode-asm

6
推荐指数
1
解决办法
721
查看次数

从python编译java

我正在写一个脚本来编译python中的.java文件但错误

import subprocess
def compile_java(java_file):
    cmd = 'javac ' + java_file 
    proc = subprocess.Popen(cmd, shell=True)

compile_java("Test.java")
Run Code Online (Sandbox Code Playgroud)

错误:

javac is not recognized as an internal or external command windows 7
Run Code Online (Sandbox Code Playgroud)

我知道如何解决Windows上的CMD问题.但是我如何为python解决它?我的意思是:我如何设置路径?

python java compilation javac

5
推荐指数
1
解决办法
6386
查看次数

如何运行已粘贴到程序中的Java代码

我正在制作时间复杂度的模拟器.目的是学生可以选择他们想要比较的算法.

但我希望能够比较他们自己编写的算法.我知道如何使用已编译的.class文件.

我想知道学生是否可以粘贴代码(使用预定义的公共方法),然后运行它.

我想我必须用javac做点什么.

欢迎任何想法!

谢谢

java compilation javac

5
推荐指数
1
解决办法
101
查看次数

如何摆脱这个Builder实现中的instanceof

这个想法

我需要创建命令.可以使用参数配置命令.并非每个命令都可以接收相同的参数.所以有些人必须被忽略.

我有一个抽象类Command,我在其中定义了一个Builder.默认情况下,每个append参数都会抛出'UnsupportedOperationException'

public abstract class Command {

   public static abstract class CommandBuilder {

        // TODO instanceof. How to do this better?
        public CommandBuilder append(Parameter p)
            throws UnsupportedOperationException {

            if (p instanceof URLParameter)
                return append((URLParameter) p);

            if (p instanceof ActionParameter)
                return append((ActionParameter) p);

            if (p instanceof RepeatParameter)
                return append((RepeatParameter) p);

            if (p instanceof TimeOutParameter)
                return append((TimeOutParameter) p);

            return this;

        }

        public CommandBuilder append(URLParameter p)
                throws UnsupportedOperationException {

                    throw new UnsupportedOperationException(
                        "URLParameter not applicable");

        }

        public CommandBuilder append(RepeatParameter p)
            throws UnsupportedOperationException …
Run Code Online (Sandbox Code Playgroud)

java oop design-patterns instanceof

5
推荐指数
1
解决办法
526
查看次数

如何在fortran中获取数组的起始索引

在fortran中定义一个数组

real, dimension(a,b) :: matrix
Run Code Online (Sandbox Code Playgroud)

如何在给定'矩阵'的情况下获得'a'和'b'?

fortran fortran90

5
推荐指数
1
解决办法
463
查看次数

python zipfile目录也被复制了

我正在尝试使用python的zipfile模块,我目前使用的代码是:

z = zipfile.ZipFile("jar/algorithms.jar", "w")
z.write('directory/QuickSort.class')
Run Code Online (Sandbox Code Playgroud)

问题是我的文件被添加到jar中,如下所示:

algorithms.jar>目录> QuickSort.class

我想要的是:algorithms.jar> QuickSort.class

我怎样才能做到这一点?

python zip

3
推荐指数
1
解决办法
2495
查看次数

具有可配置的实际精度的调用功能

目标:

具有可配置的工作精度的功能.

当我尝试这个:

program vierkantsvergelijking
implicit none

integer, parameter :: dp = kind(0.d0)
integer, parameter :: sp = kind(0.0)

print *, algoritme1(-5771.,2.,dp)
contains

  function algoritme1(b,c,wp) result( solution)
    integer :: wp ! working precision
    real(kind=wp) :: b,c,D
    real(kind=wp), dimension(2) :: solution
    D = sqrt((b/2)**2 - c)
    solution(1) = -b/2 + D
    solution(2) = -b/2 - D
  end function algoritme1

end program
Run Code Online (Sandbox Code Playgroud)

我得到:错误:在(1)的参数'b'中键入不匹配; 将REAL(4)传递给UNKNOWN

为什么这不起作用,我怎样才能实现目标?

fortran gfortran

0
推荐指数
1
解决办法
322
查看次数